有没有办法将文件从其他网站上传到我的网站?
我有一个表单,它采用半大视频文件并在表单在客户端和服务器端提交后使用令牌进行身份验证。但是,由于我们可能有 300 人同时上传文件,我们不希望一些跨站点黑客尝试上传无论如何都不会通过的文件。
他们甚至尝试的问题是,当文件开始上传时,它会占用我们的内存资源(对吗?)和带宽。
我正在寻找的解决方案是有 apache 或 iptables 或将文件发送到的 php 脚本,一旦发现它不是来自网站的上传页面,就不允许上传。
这可能吗?
该解决方案将使用表单令牌来确保表单仅通过您的服务器提交。为此,请创建一个带有随机值的表单标记,将其放入会话以及隐藏的表单字段中。发布表单时,对照会话检查此隐藏字段的值。如果表单令牌存在并且匹配会话允许上传,否则不允许。
您的上传表单页面
PHP代码:
$token = md5 (uniqid (rand (), true));
$_SESSION[“token”] = $token;
HTML 代码:
<form>
<input type="file" />
<input type=”hidden” name=”token” value=”<?php echo $token;?>”>
</form>
$_SESSION["token"]
每次用户请求您的上传页面上传新文件时,您的提交页面都会被覆盖。所以你不必担心它的值会被重置。