【问题标题】:How to secure my jQuery AJAX calls in PHP and Javascript?如何在 PHP 和 Javascript 中保护我的 jQuery AJAX 调用?
【发布时间】:2013-12-08 20:38:41
【问题描述】:

我有以下 PHP 和 Javascript 代码 sn-p,我在其中进行 jQuery AJAX 调用以从 PHP 获取数据并在 HTML 中显示。

PHP code

<?php

myfunction();

function myfunction()
{
 $myvar = $_POST['q']." how are you?";
 $myvar2 = $_POST['z'];
 echo $myvar."\n".$myvar2;
}
?>

HTML code

<div id="mydiv"></div>

Javascript code

var data =" hello world";
var data2=" hello all";
function run()
{
 $.ajax(
               {
                   url: 'myscript.php',
                   data: {'q': data,'z':data2},
                   type: 'post',
                   success: function(output) 
                   {
                          //alert(output);
                          document.getElementById("mydiv").innerHTML += output; //add output to div  
                   }
                }
            );
}

以上代码运行良好。

我想保护这个 AJAX 调用以防止它被黑客攻击,因为我正在进行一个对所有人可见的 AJAX 调用。此代码易受黑客攻击。我的问题是我应该在什么地方以及在哪里进行额外检查以确保我的 AJAX 调用安全?

我知道我应该在我的 PHP 文件中使用以下代码 sn-p

if (!$_POST['q'] && !$_POST['z'])
{
  exit;
}|
else
{
  myfunction(); //call myfunction only if page is posted
}

我应该在 PHP 和 Javascript 文件中使用哪些额外检查?

【问题讨论】:

  • “防止黑客入侵”是什么意思?如果是向脚本发出请求,不管你做什么,如果浏览器能向它发出请求,那么黑客也能做到。
  • @w00d - 我需要关于如何通过实施额外检查来改进这个简单的代码 sn-p 的建议,以使其安全且没有人可以滥用 PHP 文件从数据库访问的数据。
  • 我想如果你想更进一步,你可以通过 https 运行它并在 api 上运行某种类型的身份验证。

标签: javascript php jquery html ajax


【解决方案1】:

黑客使用了很多技巧,所以你只需要让它变得足够困难/耗时,以至于奖励不值得投资。

首先,您永远不应该回复帖子中的内容。众所周知,黑客会使用这样的漏洞进行各种注入。

为了避免这种情况,只需先取消转义值。

对于 MySQL 使用:mysqli_real_escape_string。

当回显 HTML(echo 或 print)时,使用:htmlspecialchars。

要使用exec 执行代码,请使用escapeshellcmd 和escapeshellarg。

例子:

<?php
    define('CHARSET', 'ISO-8859-1');
    define('REPLACE_FLAGS', ENT_COMPAT | ENT_XHTML);

    function html($string) {
        return htmlspecialchars($string, REPLACE_FLAGS, CHARSET);
    }
    $myvar = $_POST['q']." how are you?";
    $myvar2 = $_POST['z'];
    echo html($myvar."\n".$myvar2);

?>

【讨论】:

    【解决方案2】:

    您使用的 POST 很好。

    1. 更多您可以使用“会话”来确保安全。
    2. 为了代码安全,您可以将您的函数和其他重要代码放在一些不同的 php 文件中,并将它们包含在主文件中。让您的代码直接可见。

    【讨论】:

      猜你喜欢
      • 2016-01-30
      • 1970-01-01
      • 2011-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-17
      • 1970-01-01
      • 2023-03-25
      相关资源
      最近更新 更多