我有这个javascript从网站上删除某个图片:
$(function() {
$(document.body).on("click", ".deleteImg", function() {
var item_id = $(this).attr("id");
var parentImgBox = $(this).closest("start");
var dataString = 'id='+item_id;
$.ajax({
type: "POST",
url: "/ajax/removeitemajax.php", <--THIS FILE WILL REMOVE IMAGE FROM DATABASE
data: dataString,
success: function(data){
if (data == 0) {
alert('Error');
} else {
if(confirm("Are you sure?")){
parentImgBox.remove();
}
}
}
});
return false;
});
});
这是我在file.php中使用的内容:
... PHP code reading through the database for images. Query varaible: $queries['blablabla']...
echo'
<start>
<div class="headPhotoGalleryIconBox">
<img src="'.$queries['name'].'"></img>
<div class="large-6 other_columns">
<a id="'.$queries['id'].'" class="deleteImg"><i class="step fi-page-delete size-36"></i></a>
</div>
</div>
</start>';
正如您可能已经看到的,此脚本取决于图像的item_id
。
我的问题是,用户/访问者可以编辑网站的源代码来更改<a>
的ID,并删除带有该ID的可选内容。
我该如何解决这个问题?
谢谢!
答案 0 :(得分:1)
如果我正确理解您的问题,您需要在实际删除图像之前验证用户是否有权删除图像。这必须在服务器端完成,使用您当前使用的任何身份验证。
永远不要,永远不要依赖用户输入的准确性来执行这样的操作。在完成之前,请务必重新检查以确保用户有权执行此类操作。
答案 1 :(得分:0)
您无法控制哪些HTTP请求进入您的服务器。
您必须执行某种身份验证和授权过程。
确定请求的来源(例如,使用登录系统)然后检查他们是否有权删除他们试图删除的内容(例如,检查“owned_by”列中的用户ID是否与用户ID匹配经过身份验证的用户。)