我为几个用户创建了一个简单的文件管理。
结构:每个用户在目录uploads
中都有一个地图,如下所示:
uploads/john/-->files inside
uploads/bill/-->files inside
要删除文件,我使用此表单”
<form class="sfmform" method="post" action="">
<input type="hidden" name="deletefile" value="<?php echo $dir.'/'.$file">
<input type="submit" class="sfmdelete" name="delete" value="Delete">
</form>
var $dir.'/'.$file
根据示例显示了文件的确切位置:
uploads/john/cat.jpg
让我们假设:我是 john ,我知道另一个人的名字是 bill 。
而且我猜 bill 也有一个名为dog.jpg
我打开浏览器检查器删除自己文件夹中的文件,然后将隐藏的输入表单uploads/john/cat.jpg
的值更改为uploads/bill/dog.jpg
,然后单击Delete,我确实删除了狗图像比尔他的文件夹。
如何保护通过浏览器检查器进行的这种操作?
答案 0 :(得分:0)
这是我通过浏览器检查器来保护操作的方式:
像john
和bill
这样的文件夹的名称是由以下变量生成的:UserID
所有文件夹都位于uploads
目录中。看起来像是:{{1}
和uploads/john/...
隐藏文本字段的值是使用uploads/bill/...
创建的,始终看起来像$dir.'/'.$file
现在,我将uploads/john/file.jpg
与第一个$UserID
之后的隐藏字段的值进行比较,如下所示:
/
我对其进行了测试,看来效果很好...
好!它不是最专业的解决方案,但是我想在没有数据库的情况下制作此脚本