나는 사용자가 MySQL DB에 저장 될 리뷰를 제출할 수있는 리뷰 사이트를 구축 중입니다. 리뷰는 내게 직접 내용을 검토 한 다음 내 사이트에 표시됩니다. 여기에서 (양식의 모든 항목이 함수에 전달됩니다) 데이터를 청소 내 사용자 정의 함수의 :내 양식의 보안 의견 제출/표시
function cleanDataForDB($data) {
$data = trim(htmlentities(strip_tags($data)));
if (get_magic_quotes_gpc())
$data = stripslashes($data);
$data = mysql_real_escape_string($data);
return $data;
}
들이 승인 한 후에 나는 리뷰를 표시하는 스크립트를 작성하지 않은 아직,하지만 난 그냥 MySQL의 테이블에서 html_entity_decode() 함수를 통해 모든 필드를 전달하고 내 페이지의 HTML에 쓰기 계획했다.
누구나이 계획에 명백한 보안 허점이 있습니까? 그것은 나에게 꽤 안전한 것처럼 보일 지 모르지만, 이것은 사용자가 제출 한 데이터를 허용하는 최초의 사이트이므로, 나는 스스로를 취약하게 만들지 않기를 바랍니다.
감사합니다.
마술 따옴표 수정은 한 번 및 중앙 위치에서 수행해야합니다. 'if (get_magic_quotes_gpc()) {$ _POST = array_map ("stripslashes", $ _POST); $ _GET ...}' – mario