2014-02-16 2 views
0

여기에 벽에 머리를 대고 있습니다. 하지만 utf8_general_ci 인코딩을 사용하고 있습니다 및 유형 삽입에서 볼 수 있듯이 내가 행 UNAME, pwrod 및 이메일에 Mcrypt을 사용하십시오 MySQL DBPHP mcrypt로 삽입하는 동안 무작위로 쿼리가 실패합니다

에서 tinyblob입니다. 때때로 이것은 삽입 할 것이고 다른 것들은 삽입하지 않을 것이다. 이것은 분명 암호화 생성에 사용 된 문자열에 따라 다릅니다. 나는 '`에를 변경하는 경우

이 내 삽입

INSERT INTO `users` (`uname` , `pword` , `email` , `gender` , `provider` , `level` , `dob` , `confirmed` , `regdate` , `confirmationCode`, `ip`) 
VALUES ('“­É.¡Ec', '$2a$15$3G.7Pfap0dfWnEZxVPKWjewcLUA6tYm7a1al6I0QNZUCNcdl6E6Mu', 'ðÖŒÅÕ'Ý£mY]ª±¼ ôn´}Ð>d¢', '0','manual', '0', '2014-02-16', '0',NOW(), 'f5ab855e95eab47948b05cfe5a03e4d6', '127.0.0.1'); 
Error Nr: 1064 Error Msg: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Ý£mY]??? ?n?}?>d?', '0','manual', '0', '2014-02-16', '0',NOW(), 'f5ab855e95eab' at line 14 

입니다 그럼 내가받을 다음과 같은 오류 :

Error Nr: 1300 Error Msg: Invalid utf8 character string: '\x93\xAD\xC9.\xA1E\x04c' 

내가 내 char encoding을 변경해야 할 것 같은데요? - 하나의 데이터를 탈출하지 않음으로써

[..snip..], 'ðÖŒÅÕ'Ý£mY]ª±¼ ôn´}Ð>d¢',[..snip..] 
       ^--start string 
        ^---end string 

당신은 잘못 쿼리를 구축하고있다 : 내 지식이 아래로 떨어지면 (그냥 일반적으로 모든 인코딩 :))

+0

정말로 암호화해야합니까? –

+0

슬프게도 내가하고있는 데이터는 완전히 신중해야한다. 나쁜 시간이지만, 네스케이프이다. –

+0

만약 내가 당신의 데이터베이스를 훔쳐왔다면, 암호화 키를 가지고 있을까? –

답변

2

당신은 SQL injection attack 취약점으로 고통받는 경우 그러나 이것은이다 당신은 쿼리 문자열에 있거나 DB 라이브러리의 prepared statement/placeholder 기능을 사용하지 않습니다.

+0

감사합니다. 나는 그저 모자를 빨리 돌릴 것이다. 불쌍한 밥 테이블! 제가 마크 (Marc)라는 질문을 할 수 있다면, 제가'''를 벗어나면 해독 할 때 제거해야한다는 뜻은 아닙니다. –

+0

escpaing string 질문에 대한 아이디어 marc/ –

+0

http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php –

관련 문제