나는 시나리오가 있습니다.HTML을 편집 한 후 PHP를 통해 게시
<input type="text" name="title" id="title">
가의 그 사람을 사용 F12 개발자 도구라고하자에 ID = "제목을"변경 :의 누군가가 내 웹 사이트에 예를 들어 이벤트를 추가하는 형태가 다음과 같이 필드가 있다고 가정 해 봅시다 id = "whatever"또는 심지어 id 속성을 제거하면 PHP 스크립트가 실행을 멈추게하여 MySQL에 아무 것도 게시되지 않게하려면 어떻게해야합니까? (프런트 엔드 양식)
<form action="bookmarks.php" method="post" enctype="multipart/form-data">
<div class="control-group">
<label class="control-label" for="input-mini">Title*</label>
<div class="controls">
<input class="span12" id="title" name="title" type="text" placeholder="e.g. Oliver's pet cat...">
</div>
</div><!-- /control-group -->
<div class="control-group">
<label class="control-label" for="input-mini">Link*</label>
<div class="controls">
<input class="span12" id="link" name="link" type="text" placeholder="e.g. http://boopeo.com">
<input type="hidden" name="parse_var" id="parse_var" value="addbookmark" />
<br /><input name="submit" type="submit" class="btn btn-success span12" value="Bookmark" /></form>
백 엔드 PHP : 사용자의
if (isset($_POST['parse_var'])){
$parser = $_POST['parse_var'];
$parser = htmlspecialchars($parser);
if ($parser == "addbookmark"){
$title = $_POST['title'];
$title = htmlspecialchars($title);
$linkurl = $_POST['link'];
$linkurl = htmlspecialchars($linkurl);
$sqlrecentmark = $db->query("SELECT link_url FROM tablenamehere WHERE mem_id='$id' ORDER BY id DESC LIMIT 20");
while($row = $sqlrecentmark->fetch(PDO::FETCH_ASSOC)) {
$recent_link = $row["link_url"];
}
if ($linkurl != $recent_link){
$dataact = array('mem_id' => $id, 'title' => $title, 'link_url' => $linkurl);
$sqlactivity = $db->prepare("INSERT INTO tablenamehere (mem_id, title, link_url) value (:mem_id, :title, :link_url)");
$sqlactivity->execute($dataact);
} else {
$not_msg = '<br /><br /><div class="alert alert-error">Oops! You have added that bookmark before. Just look and you shall find!</div>';
}
}
}
결코 신뢰 사용자가 데이터를 제출, 항상 확인하고 소독 ... 그리고 돈 매개 변수가있는 쿼리 –
을 사용해야한다는 사실을 잊지 마십시오. 프런트 엔드 양식과 백엔드 PHP 코드를 게시 할 수 있습니까? 이것은 백 엔드 입력 위생과 관련된 문제와 유사합니다. 이 시나리오가 정확히 해가되는지는 확실하지 않지만 흥미로운 것으로 보입니다. – Maximus2012
프론트 양식에 다른 예제를 사용합니다 : – James