gpt4 book ai didi

php - 如何避免PHP中的UNLINK安全风险?

转载 作者:可可西里 更新时间:2023-11-01 13:12:48 26 4
gpt4 key购买 nike

我将 UNLINK 与 PHPAJAX 一起使用。我知道这种方式很危险,因为任何人都可以删除任何文件。但是我需要使用 AJAX,因为当我删除文件时无法重新加载页面。

那么我应该怎么做才能只允许拥有它的用户删除文件呢?

如果您认为我在这里做错了什么或者您有其他想法并且您认为它会有用,请告诉我其他事情:)

我的 PHP 代码:


<?php

$photo_id = $_GET['photo_id'];
$thumbnail_id = $_GET['thumbnail_id'];

function deletePhotos($id){
return unlink($id);
}

if(isset($photo_id)){
deletePhotos($photo_id);
}
if(isset($thumbnail_id)){
deletePhotos($thumbnail_id);
}


?>

我的 AJAX 代码:


function deletePhoto(photo, thumbnail){

var photos = encodeURIComponent(photo);
var thumbnails = encodeURIComponent(thumbnail);

if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else {// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("media").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET", "http://192.168.2.104/images/users/delete_photo.php?photo_id="+photos+"&thumbnail_id="+thumbnails, true);
xmlhttp.send();
}

最佳答案

您需要以某种方式对用户进行身份验证。

您的用户需要使用用户名和密码进行身份验证。

PHP session 可以用来内存,你应该在服务器上使用数据库表或文本文件来存储文件所有权信息。

然后,在取消链接之前,您的逻辑应该确保当前“经过身份验证”的用户是文件的所有者。

关于php - 如何避免PHP中的UNLINK安全风险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3415418/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com