I가 요청하는 다른 스크립트를 가져와 이것이 내가 사용자 입력 소독을 쓴 하나 "이동"스크립트 : 나는 다른 사람 사용이 접근을 보지 못했다PHP/MYSQL : 사용자 입력을 살균하는 것은 좋지 않은 생각입니까?
foreach ($_REQUEST as $key => $value){
if (get_magic_quotes_gpc())
$_REQUEST[$key] = mysql_real_escape_string(stripslashes($value));
else
$_REQUEST[$key] = mysql_real_escape_string($value);
}
합니다. 거기에 어떤 이유가 없습니까?
편집 - 개정 된 배열을 위해 일하기 :
function mysql_escape($thing) {
if (is_array($thing)) {
$escaped = array();
foreach ($thing as $key => $value) {
$escaped[$key] = mysql_escape($value);
}
return $escaped;
}
// else
if (get_magic_quotes_gpc()) $thing = stripslashes($thing);
return mysql_real_escape_string($thing);
}
foreach ($_REQUEST as $key => $value){
$_REQUEST[$key] = mysql_escape($value);
}
불행하게도, 내 문자 집합이 UTF-8이고 라틴 문자에 국한되지. 나는 모든 것을 적절하게 이스케이프 처리하도록하지만, SQL 인젝션을 열어두고 지나치게 편집증 적이라는 것을 알았습니다. – Greg
mysql_real_escape_characters는 데이터베이스로 들어가는 사용자 입력을 위생 처리하는 더 좋은 옵션입니다. – Residuum
@Residuum : 매뉴얼에서 찾을 수없는 것 같습니다. – Greg