关于jQuery Ajax方法的安全问题

时间:2012-01-30 11:56:33

标签: php jquery ajax security

简短问题:

有没有办法隐藏jQuery ajax方法的提交页面?

问题描述:

我有一个网页,我会将一些数据发布到另一个php进行处理,然后使用AJAX方法将所有数据发送回页面。

$(document).ready(function() {
  $.post( 'process.php',
           {data1:12345, data2: 23456},
           function(html){
             $('#content').append(html);
           };
  });
});

显然上面的代码暴露了我处理数据的页面。 process.php就是这样的:

<?php 

require("db.php");

$query = "SELECT * FROM table1 WHERE 1";
$result = mysql_query($query);
$d1 = $_POST['data1'];
$d2 = $_POST['data2'];
$jsondata = array();

while($row = @mysql_fetch_assoc($result)) {
  $row['d3'] = calculateA($d1,$d2,$row['A'],$row['B']);
  $jsondata = $row;
}

echo json_encode($jsondata);

?>

现在,黑客或入侵者可以轻松链接页面并使用AJAX方法在我的页面上调用,然后黑客就可以轻松地将$jsondata放在他们手中。我研究了一些网站,我无法找到他们的“提交页面”链接。因此,我想知道他们是如何做到的。

2 个答案:

答案 0 :(得分:3)

您无法掩饰从浏览器发出的请求 - 因为浏览器(以及用户的扩展名)正在启动它们。

您可以对源进行模糊处理,但请求仍会显示在以下位置:Firebughttp://www.wireshark.org/(协议分析器),防火墙,ISP日志等。

如果您想查看其他网站提出的请求,请安装上述工具之一。

答案 1 :(得分:1)

  

有没有办法隐藏jQuery ajax方法的提交页面?

没有

  

黑客很容易将我的$ jsondata放在他们手中。

就像他们也有你的网页的HTML源代码一样。这就是网络的运作方式。

  

我无法找到他们的“提交页面”链接。

更好地研究它们。