이미지 업로드를 안전하게하는 방법을 알고 난 후 Bypassing forms input fields to upload unwanted files 나는 2 개의 파일 중 하나를 숨겨 놨습니다.숨겨진 필드가있는 입력 양식
SQL 표 (ID, 이름, JOD, 수)
CREATE TABLE `users` (
`id` bigint(20) unsigned NOT NULL auto_increment,
`name` varchar(255) default '0',
`job` varchar(255) default NULL,
`number` varchar(255) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
양식 코드 (자신의 정보를 편집 할지지 부재)
<form action="send.php" method="post" name="send" id="send">
<input type="text" name="name" id="name" value="John"/>
<input type="text" name="job" id="job" value="Plumber"/>
<input type=hidden name="number" id="number" value="1234"/>
<input type="Submit" name="Submit" value="Submit"/>
</form>
나중에이하던 파이어 폭스 확장 기능이 서버 측 바이 패싱 검사와 다른 입력을 우회하여 많은 피해를 입힐 수 있으므로 여기서 전체 프로세스를 중지하고 숨겨진 테이블의 값을 편집 할 수 있습니다. 을 value="1"
과 같은 것으로 업데이트하면 회원의 업데이트 정보가 value number 1
입니다.
즉 확장 다음과 같이 작동, 그것은 수는 서버 측에 전달하기 전에 데이터 가짜 입력.
PHP 코드 Send.php
if(isset($_POST['send'])){
$name = mysql_real_escape_string($_POST[name]);
$job = mysql_real_escape_string($_POST[job]);
$number = mysql_real_escape_string($_POST[number]);
$sql= "update users SET name='$name',job='$job' WHERE number='$number'";
mysql_query($sql) or die("query failed: $sql".mysql_error());
echo "Update Done";
} else {
echo "Nothing to update";
}
방법 다음과 같은 입력 폼에서 간단한 양식을 보호하는 질문? 이 해킹 될 :
숫자로 바인딩하는 대신 PHP의 세션 ID와 같은 UNIQUE ID를 사용 하시겠습니까? – hjpotter92
[** ** 구식 ** 데이터베이스 API] (http://stackoverflow.com/q/12859942/19068)를 사용하고 있으며 [현대 대체] (http://php.net/manual/ko/)를 사용해야합니다. mysqlinfo.api.choosing.php). – Quentin