2012-04-11 2 views
0

난 그냥 안전한 양식을 할 수있는 사람을 고용하고 아래에 붙여 큰 코드의 스 니펫입니다했다 :여러 필드를 이스케이프 처리하는 올바른 방법입니까?

 $_POST = escape_all($_POST); 

     $some1 = $_POST['some1']; 
     $some2 = $_POST['some2']; 
     $some3 = $_POST['some3']; 
     $some4 = $_POST['some4']; 
     $some5 = $_POST['some5']; 
     $some6 = $_POST['some6']; 
     $some7 = $_POST['some7']; 
     $some8 = $_POST['some8']; 

하는 올바른 방법이 아니면 내가) (mysql_real_escape_string를 추가해야합니다; 모든 변수에?

+1

'escape_all'이 무엇인가에 달려 있습니다. – Amber

+0

"mysqli"에 대해 "고용 된 사람"에게 알리기 –

+1

$ _POST를 사용하지 말고 이스케이프 문제가 아닌 SQL 작성 기술 (예 : 명명 된 매개 변수)을 사용하는 것이 좋습니다. – Eli

답변

2

그는 탈출 할 사용자 지정 함수를 작성한 것처럼 보입니다. escape_all 함수가 mysql_real_escape 문자열을 호출하는 한 그것은 기술적으로 작동 할 것이지만 몇 가지 이유로 선호되는 솔루션이라고 말할 수는 없습니다.

첫째, 다른 곳으로 쉽게 빠져 나가지 않도록 조심해야합니다. 두 번 이스케이프가 쉽게 이어져 다른 문제가 발생할 수 있습니다.

또한 성능에 문제가 있으면 상황에 따라 이스케이프 할 필요가없는 많은 양의 데이터를 이스케이프 처리 할 수 ​​있습니다.

네, 일반적으로 mysql 대신 mysqli를 사용하는 것이 좋습니다.

+0

감사합니다. 또한 전체 코드를 검사하여 escape_all 함수를 찾을 수 없습니다. 그가 무엇을하고 있었는지 확실하지 않습니다. 수동으로 변수에 추가 할 수 있습니다. – AAA

+0

여러분을 환영합니다! 코드가 어떤 종류의 오류 또는 통지를주지 않으면 함수가 어딘가에 있어야합니다. 여하튼 입력을 이스케이프해야하는 항목 만 수동으로 이스케이프 처리하는 것이 전체 POST 슈퍼 글로벌의 일반적인 탈출보다 더 이상적인 솔루션입니다. – Mansfield