가능한 중복 :
Best way to stop SQL Injection in PHP양식/URL에서 POST/GET 변수를 살균하는 가장 좋은 방법은 무엇입니까?
내가 MySQL 데이터베이스를 사용한다하여 URL에서 형태와 변수를 처리하는 PHP를 사용하여 웹 사이트를 만드는 오전. 변수는 SQL 쿼리 문자열을 동적으로 구성하는 데 사용됩니다. 그래서 아무도 SQL 주입 등을 시도하고 있는지 확인하는 강력한 솔루션이 필요합니다. 내 친구가 정말 데이터베이스에 액세스 할 수있는 저장 프로 시저를 사용해야하지만 그것은 실제로 가능하지 않습니다 호스트 내가 사용하고 있기 때문에 말했다 이것들을 허용하지 마라. 여기
내가 사용하고 코드입니다 (이 클래스의 일부 DB 명령을 포장하는의) :이 기능이 강력한만큼...
public function Sanitize($Variable)
{
if(is_resource($this->ServerConnection))
{
$Variable = str_replace(";", "", $Variable);
if(get_magic_quotes_gpc())
{
if(ini_get('magic_quotes_sybase'))
{
$Variable = str_replace("''", "'", $Variable);
}
else
{
$Variable = stripslashes($Variable);
}
}
return mysql_real_escape_string($Variable, $this->ServerConnection);
}
else
{
$this->PrintError("The Sanitize function is not available as there is no server connection.");
}
}
...
인가? 내가 다른 일을해야 할까?
왜 매개 변수화 된 쿼리를 사용하지 않습니까? – dave4420
매개 변수가있는 쿼리 란 무엇이며 이점은 무엇입니까? 어쩌면 내가 분명히 내가 SQL 데이터베이스를 오랫동안 온라인으로 사용하지 않았 음을 분명히해야합니다. –
매개 변수화 된 쿼리를 수행하려면 PDO를 확인하십시오. http://php.net/pdo – rojoca