mysql_real_escape_string ()가 데이터베이스에 슬래시를 남겨 두어야합니까?

StackOverflow https://stackoverflow.com/questions/277575

  •  07-07-2019
  •  | 
  •  

문제

나는 smarty를 사용하고 있습니다 mysql_real_escape_string() 사용자 입력 및 코드를 다음과 함께 삽입 할 때 ' 또는 " , phpmyadmin에서의 조회는 백 슬래시없이 보여줍니다.

DB에서 레코드를 받으면 백 슬래시도 없습니다. 그러나 방금 DB에 삽입하지 않고 탈출 된 문자열을 통과하면 백 슬래시됩니다.

슬래시를 추가하고 삽입 한 다음 출력 할 때 제거해야합니까? 아니면 내가 뭔가를 놓치고 있습니까?

도움이 되었습니까?

해결책

당신은 그것을 놓치고 있습니다 - 백 슬래시로 탈출하는 것은 쿼리가 잘못 변하지 않도록하기위한 것입니다. 예를 들어, 이와 같은 것이 반드시 깨지고 SQL 주입을 위험에 빠뜨릴 수 있습니다.

insert into table values ('whatever 'this' is')

그리고 테이블에는 아무것도 저장되지 않을 것입니다.

insert into table values ('whatever \'this\' is')

테이블에 "뭐든지 뭐든지"값을 절약 할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top