我正在尋找一種通過ajax將敏感變量傳遞給php文件的安全方式。目前,我一直在使用數據屬性,但可以使用類似螢火蟲的值來更改這些值。在點擊事件上傳遞敏感變量的最佳方法?
HTML:
<div class="strip">
<?php
if($hide == 0) {
echo '<h2 class="action" data-type="1" data-id="<?php echo $id; ?>" data-action="0">Hide Business</h2>';
}
if($hide == 1) {
echo '<h2 class="action" data-type="1" data-id="<?php echo $id; ?>" data-action="1">Un-Hide Business</h2>';
}
?>
<h2 class="action" data-type="1" data-id="<?php echo $id; ?>" data-action="2">Delete Business</h2>
</div>
的JavaScript/JQuery的:
$(".action").click(function() {
var type = $(this).data("type");
var id = $(this).data("id");
var action = $(this).data("action");
$.ajax({
url : 'assets/php/confirm.php',
type : 'POST',
data : "type="+type+"&action="+action+"&ids="+id,
success : function (result) {
alert(result);
}
});
});
PHP:
if(isset($_POST['type'], $_POST['action'], $_POST['ids'])) {
$type = $_POST['type'];
$action = $_POST['action'];
$ids = explode(",", $_POST['ids']);
$count = count($ids);
if($type == 0) {
if($action == 1) {
$stmt = $mysqli->prepare("DELETE FROM deals WHERE id=?");
} else {
$stmt = $mysqli->prepare("UPDATE deals SET hide=0 WHERE id=?");
}
} else {
if($action == 1) {
$stmt = $mysqli->prepare("DELETE FROM businesses WHERE id=?");
} else {
$stmt = $mysqli->prepare("UPDATE businesses SET hide=0 WHERE id=?");
}
}
for($i = 0; $i < $count; $i++) {
$stmt->bind_param('s', $ids[$i]);
$stmt->execute();
$stmt->close();
}
echo 'Success updated '.$_POST['ids'];
}
需要是安全的變量是數據類型,數據ID,數據操作值。原因是我不想刪除錯誤的數據庫條目。 我不知道任何替代品,所以任何幫助將是偉大的。
任何客戶端必須被視爲公衆,所以在沒有任何服務器端檢查的情況下,不應將敏感數據發送給客戶端。因此,檢查服務器端用戶可以對這些敏感數據做他想做的事情 –
任何事情都可能被篡改,而不僅僅是數據屬性。您可以在沒有瀏覽器的情況下發送請求事件,所以...只需使用適當的驗證 –