php安全性和ajax请求

php安全性和ajax请求,php,security,jquery,xss,Php,Security,Jquery,Xss,我的网站上有一些简单的脚本,允许用户完成以下任务 计算日期差异,做数学计算等。该网站约占95% 纯html(不是php生成的),除了一些发布用户输入的jquery/ajax 到服务器端进行计算。ajax代码如下所示: $.ajax({ type: "POST", url: "script/calc.php", data: { userval:val}, success: function(response){ //display response

我的网站上有一些简单的脚本,允许用户完成以下任务 计算日期差异,做数学计算等。该网站约占95% 纯html(不是php生成的),除了一些发布用户输入的jquery/ajax 到服务器端进行计算。ajax代码如下所示:

$.ajax({
    type: "POST",
    url: "script/calc.php",
    data: { userval:val},
    success: function(response){
    //display response
    }
});
当用户输入值是/应该是数字时,我在php上的post变量之前添加(int) 文件“calc.php”,即使在安全方面,我认为它不会带来任何问题

我在考虑过滤http_referer,这样php文件只从我的站点获取请求 (为了避免任何滥用)但我读到,只依靠http_referer并不是最终的选择 技巧,因为它依赖于用户的浏览器,有时它可能是空的。另一方面 我知道ajax默认情况下不允许发布到另一个域,但有一个黑客攻击 那也是

我不是一个铁杆的安全人员,我知道一些基本知识,所以你们有什么事吗 你能推荐我吗?在这种情况下可能出现什么问题。请注意,我不使用任何 数据库中,只有一个php文件可以进行一些计算,其他什么都没有(什么都没有) 如访问任何目录、文件上载等)

<> P>有什么是我应该认真考虑的,以防止服务器滥用、XSS攻击或 相似的

编辑:所以基本上calc.php有这样的结构(非常简单)

//应为整数 $userval=(int)$_POST['userval']

$total_sum=($userval*15)*(150*($userval-2))

echo$total_sum; 未结算(总金额)

//结束//

  • AJAX使用JavaScript,它有SOP(相同的组织策略)阅读

  • 检查您的输入。如果需要数字,请在php中检查它们,并使用(int)或intval()强制转换

  • 什么是输入数据?若你们并没有将任何东西放入数据库,你们也并没有更改你们的文件,那个么你们使用输入做什么呢

  • 如果您有字符串,则始终可以使用正则表达式并对其进行验证。您还应根据存储位置对其进行转义。但数字让事情变得更容易

  • 您提供的脚本已保存

  • 良好的做法是记录所有可疑的尝试,如果有太多,您应该阻止用户


  • 大多数安全性归结为清理用户输入数据。大多数马裤都是因为缺乏。好吧,为了告诉您
    script/calc.php
    是否有任何问题,我们需要查看源代码(或者至少是其中的一部分)。您好,谢谢您的回答。正如我提到的,大多数脚本都是计算器。php需要一个或两个值,进行一些计算,然后输出结果并将其发回:)intval(),is_numeric(),casting-所有您需要的:)另外,如果我可以问一个离题的问题,这不是php的核心任务,服务器负载是否会有问题,考虑到6k用户将同时使用我的站点的情况,没有数据库,所以执行一些乘法/加法并回显结果是php必须做的一切。这不会有问题,但我不明白为什么不使用java脚本?如果你使用JS,那么你就不必担心,因为所有的计算都是通过浏览器完成的,这会更好。我使用一些javascript,大约50%的内容都是在服务器端完成的,我这样做是为了保护我的代码。Javasript很容易被读取和窃取。这是我为了避免轻松复制我的东西而做的事情,当然,程序员可能会怀疑它:)