我的网站上有一些简单的脚本,允许用户完成计算日期差异、进行数学计算等任务。该网站大约 95% 是纯 html(不是 php 生成的),除了一些将用户输入发布到服务器的 jquery/ajax -side 进行计算。ajax代码如下:
$.ajax({
type: "POST",
url: "script/calc.php",
data: { userval:val},
success: function(response){
//display response
}
});
当用户输入值是/应该是数字时,我在 php 文件“calc.php”的 post 变量之前添加(int),即使在安全性方面我认为它不会带来任何问题。
我正在考虑过滤 http_referer,所以 php 文件只从我的网站获取请求(以避免任何滥用),但我读过仅依靠 http_referer 并不是最终的技巧,因为它依赖于用户的浏览器,有时它可能是空的. 另一方面,我知道默认情况下 ajax 不允许发布到另一个域,但也有一个 hack。
我不是铁杆安全人员,我知道一些基础知识,所以你们有什么可以建议我的吗?在这种情况下可能会出什么问题。请注意,我不使用任何数据库,只有一个 php 文件可以进行一些计算,仅此而已(没有像访问任何目录、文件上传或类似的东西)。
还有什么我应该认真考虑的,以防止服务器滥用、xss 攻击或类似的吗?
编辑:所以基本上 calc.php 有这样的结构(非常简单)
//期待一个整数 $userval = (int) $_POST['userval'];
$total_sum = ($userval*15) * (150* ($userval-2));
回声 $total_sum; 未设置($total_sum);
//结尾//