php - 如何在php中安全地取消链接文件?
我需要在php中使用/var/www/mysite/postImage
函数删除unlink()
文件夹中的图像文件。
但我绝对担心,如果有人入侵我的网站并正在使用它..或者。在路径中并尝试删除上级文件夹中的内容。
我使用JQuery发送路径,因为它的客户端编程很危险。
我知道,我可以在上传文件时绕过点,但如果有人通过添加点来改变客户端的路径呢?
我的问题是如何阻止某人这样做?
最佳答案:
2 个答案:
答案 0 :(得分:1)
Thumb规则应该是这样,你应该至少依赖客户端的数据。
现在根据您的问题,您似乎正在发送要删除的完整文件路径。
所以恕我直言,你应该只发送文件名,让服务器端php
决定(追加)要删除文件的目录。
// example
$filename = $_POST['fname']; // something like xyz.png
$filename = str_replace('/','',$filename); // strip any forward slash.
if(empty($filename)){
die('File Name Invalid'); // seems like all the characters in file name were slashes.
}
$directory = 'some/folder/that/contain/images/postImage/';
$filepath = $directory . $filename;
unlink($filepath);
现在关于使用此功能的其他人,只需保留一个登录系统,并检查用户是否已登录。
答案 1 :(得分:1)
- 确保apache用户具有适当的权限(仅在网站目录中写入)
- 从路径中剪切
..
,清理并验证路径是否正确。 - 您也可以使用realpath()函数。 醇>
本文经用户投稿或网站收集转载,如有侵权请联系本站。