Ir para o conteúdo
tiko165

Mysql e aspas em inserts ou updates

Mensagens Recomendadas

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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. :)


scorch_pp.png

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.