while($info = mysql_fetch_array($data)) {
// Print out the contents of the entry
Print "<li><b>Name:</b> ".$info['name'] . " <br />";
Print "<b>ID:</b> ".$info['ID']." <br />";
Print "<b>Age:</b> ".$info['age'] ." <br />";
Print "<b>Location:</b> ".$info['location'] ."<br /> ";
Print "<form action=delete.php method=POST><input name=ID value="safe(.$info['ID']." type=hidden><input type=submit name=submit value=Remove class=submit></form></li>";
}
Print "</ol>";
그건 내 코드입니다. 나는, 그러나,이 라인에 집중하고있다 : 내 이전 게시물 중 하나로 지적되었다양식을 안전하게 제출하여 제출하기
Print "<form action=delete.php method=POST><input name=ID value=".$info['ID']." type=hidden><input type=submit name=submit value=Remove class=submit></form></li>";
으로, 그것은 SQL 주입 공격에 안전하지.
나는 다른 게시물에서이 기능을 차용했습니다
이function safe($value){
return mysql_real_escape_string($value);
}
지금, 어떻게 지옥에서 내가 공격에서이 부분은 안전 할 것인가?
value=".$info['ID']."
귀하의 지속적인 지원은 대단히 감사하겠습니다.
을 귀찮게 하는가? 내 자신의 교육을 위해 만드는 것은 ID 만 찾는 DELETE를 사용합니다. 그러나 데이터베이스에 입력하는 문자열을 보호하고 싶습니다. 어떤 충고? –
이미 정수로 캐스팅 된 경우에는 mysql_real_escape_string이 필요하지 않습니다 (이미 정수이기 때문에 그 안에 재미있는 문자가 없습니다!). – mauris
오케이. ID 필드 유형은 int (1)입니다. 그래서 정수입니다. 그러나 이것은 ID를 추측하는 사람들로부터 나를 보호하지 못합니다. 그래서 지금 작성한이 코드를 구현하려고하는데, delete.php에 어디에 넣어야할지 확신이 서지 않습니다. $ result = mysql_query ("savannah WHERE ID = '. (int) $ _ POST ['ID ']"에서 삭제) 또는 die (mysql_error()); 이 오류를 제공합니다. –