Jump to content
tiko165

Mysql e aspas em inserts ou updates

Recommended Posts

tiko165

Quando faço INSERT ou UPDATE de algo que contenha aspas, após inserir fica sempre com uma barra atrás dessa aspa (Ex: \")

Não estou a conseguir verificar nada de anormal no código. O texto que coloco, coloco bem, e depois de inserir aparece sempre com a tal barra.

Alguém sabe o porque de isto acontecer?


collectioneuro300px.png

Share this post


Link to post
Share on other sites
HappyHippyHippo

- o php está configurado para colocar essas aspas em todos os dados (get/post) que recebe

- estás a executar algum tipo de função de prevenção de SQL Injection (tipo : mysql_real_escape_string)


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
tiko165

- o php está configurado para colocar essas aspas em todos os dados (get/post) que recebe

- estás a executar algum tipo de função de prevenção de SQL Injection (tipo : mysql_real_escape_string)

Não uso directamente o SQL Injection, mas uso o método do PDO.

Ha alguma forma de contornar isto?


collectioneuro300px.png

Share this post


Link to post
Share on other sites
scorch

Sim. Imagina que tu fazes um

where password = \"".$password."\"";

e a pessoa na password meter:

ola" OR 1

Num login, ele irá verificar se a password é igual a ola (pode muito bem não ser) ou um (1 em informártica é verdadeiro, certo?), por isso a query retornará sempre verdadeiro e o utilizador vai conseguir entrar no teu programa (ou o que quer que seja). Basicamente, ele passa a conseguir inserir código SQL na própria query (como o próprio nome indica), e a partir daí pode fazer o que quiser, desde apagar tudo a ganhar acesso de administrador, até a obter as informações dos teus utilizadores. :)


PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
tiko165

Pois, em questões de segurança ainda pouco sei :s

Mas é bom começas a saber novas coisas! :D


collectioneuro300px.png

Share this post


Link to post
Share on other sites
tiko165

Ele referiu que usa PDO...

Exactamente, uso PDO.

Comecei a usar o PDO, pois pelo que li e aprendi, era uma das formas de ter melhor segurança.

Apesar de não ser 100% fiável, é sempre melhor!


collectioneuro300px.png

Share this post


Link to post
Share on other sites
mjamado

Não é o PDO que te traz segurança, são as prepared statements. Se usas PDO mas constróis as queries à mão ficas na mesma.

Usar PDO ao invés de MySQLi só traz a vantagem de poderes mudar de motor mais facilmente mais tarde. Se não há a mais remota hipótese de isso acontecer, mantém-te com o MySQLi, que ganhas marginalmente em performance. De qualquer forma, o link indicado pelo bioshock é muito válido. Se preferires ler a mesma coisa mas tendo como base o PDO, também existe.


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.