2011-09-10 4 views
0

그래서 나는 파일을 처리하는 PHP 폼을 가지고있다; 이상적으로처리 파일을 보호하는 방법

<?php 
    $value = $_POST['string']; //Assume string is safe for database insertion 
    $result = mysql_query("INSERT into table values {$value}"); 
    if($result) { 
     return true; 
    } else { 
     return false; 
    } 
?> 

으로 코드와 파일 이름 process.php 말, 내 웹 사이트에 로그인 한 유일한 사람은 삽입을 수행하는 POST 요청을 보내도록 허용된다. 그러나 여기에서는이 처리 파일의 경로와 전송 요청을 알고있는 사람이라면 어떤 도메인에서든 스푸핑 된 POST 요청을 보낼 수 있습니다 (잘못하지 않았다면). 이렇게하면 원하지 않는 데이터가 데이터베이스에 삽입됩니다.

삽입 전에 사용자가 로그인했는지 여부를 확인했습니다. 그렇지 않으면 POST 요청을 무시합니다. 그렇지만 악용으로부터 내 처리 파일을 얼마나 안전하게 보호해야합니까?

답변

0

이것은 SQL 주입에 취약합니다. 파일과 mysql "blob"또는 "long blob"유형을 삽입하려면 매개 변수가있는 쿼리 라이브러리 PDO을 사용해야합니다. mysql_query()을 절대로 사용하지 마십시오.

또한 사용자 액세스 제어를 위해 사용자의 ID를 추적해야합니다. 이것을 고려한 것처럼 보이지 않습니다.

관련 문제