将文件名作为post变量是不是很糟糕?

时间:2012-10-12 06:53:53

标签: php mysql image file-upload

我不知道是否有人可能会滥用此功能。什么是变通方法?我不希望有人通过这种方式下载内容来滥用我的服务器。

可以选择重新通过电子邮件发送运输标签。我基本上已经设置好了,所以除了准备页面之外没有数据库工作。我能想到的唯一其他方法是将post变量作为行的ID,然后从那里拉出文件名。

那么,将文件名作为post变量(可能会被篡改)是不安全的吗?

2 个答案:

答案 0 :(得分:2)

如果您要在其上执行readfile()include()等操作,那将是不安全的。

使用行ID会更好,但即便如此,您仍然需要考虑是否应该允许用户访问该文件(以避免随机id = 1 id = 2 id = 3测试)。

答案 1 :(得分:2)

您永远不应该信任传入的数据。 POST请求可能会被滥用以及GET请求,因此在最糟糕的情况下,您的网站可能是XSS攻击的一种手段,或者可能被用作垃圾邮件节点。

要做的是除了文件名或条目ID之外,发送一些散列,然后检查这两个是否匹配,即是与此散列相关联的条目。因此,简单地尝试不同的ID将无法工作,因为滥用者也必须猜测正确的哈希值。一条忠告:哈希不仅是id,还是文件名,还有发送电子邮件的时间和一些盐。

相关问题