쿼리를 수행하기 전에 SQL 삽입 공격을 막기 위해 (을 사용하고 있습니다).php/mysql real_escape 및 특수 문자
문제는 데이터를 입력 할 경우에 특수 문자를 가지고 있다는 것입니다, MySQL은 삽입의 데이터베이스에 슬래시를 삽입하는 것 같다.
그런 다음 웹 페이지에 필드를 표시하면 슬래시가 나타납니다. 데이터베이스에 저장 어쨌든 데이터 등
이되어 표시 할 때이 슬래시를 제거하는 지속적인 유지 보수를 많이 필요로
이상적으로, 나는 디베이스 테이블에 특수 문자 앞에 슬래시를하고 싶지 않아 백 슬래시를 포함하지 않고? 예를 들어
: "밥 \ '의 데이터를"데이터베이스에
$field = "bob's data";
...establish database connection
$field = mysql_real_escape_string($field);
$sql="INSERT INTO table (field) VALUES ('$field')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
넣습니다.
데이터베이스에서 슬래시로 끝나지 않도록 다르게 처리해야합니까?
참고 : 나는 매개 변수가있는 쿼리 또는 PDO하지만 거대한 기존의 웹 사이트와 같이 여러 가지 이유로,이 경우에 할 수 없어를 사용하는 것입니다 qureris을 할 수있는 좋은 방법을 알고있다.
미리 제안 해 주셔서 감사합니다.
구글'magic_quotes' – zerkms
당신은 정말 그렇게 문자 그대로'$ field'을 할당나요, 아니면'$ _GET' 또는'$ _POST'에서 왔는가? 클라이언트 입력에서 나온 것이라면, @zerkms가 언급 한 것처럼'magic_quotes'가 문제가 될 수 있습니다. 문자 그대로라면, 나는 당신이 말하는 것처럼 그것이 일어나고 있다고 생각하지 않습니다. – Barmar
텍스트 영역의 게시물에서 왔습니다. 입력에 어포 스트로피가있는 경우를 설명하기 위해 문제의 방식으로 썼습니다. 나는 마술 따옴표가 켜져 있다고 생각하지 않는다. – user1904273