全部,关于Ajax黑客的问题
我有一个用Zend Framework和MVC编写的PHP网站。大多数控制器操作检查请求是否是Ajax请求,否则将用户重定向到主页。我正在考虑各种方式来打破该网站。我正在考虑以下情况:
- 用户在其本地计算机上创建自己的PHP项目。
用户向我的站点上的控制器之一写入JQuery ajax post请求,并尝试发布恶意信息。 例如:
$.ajax({ type: 'POST', url: "https://marketsite/getinfo/getstuff", cache: false, dataType: "html", success: function(html_response){ alert(html_response); }, error: function(xhr,ajaxOptions,errorThrown){ alert(errorThrown); } });
我的问题是没有 “URL” 属性在Ajax请求上面占据绝对路径?我知道它需要相对路径。另外,是否有可能通过发送此类请求来破坏任何网站?
感谢
唯一的检查我在地方每个控制器的动作是,它会检查一个Ajax请求。如果不是将用户重定向..我的网站是90%阿贾克斯驱动..我使用的代码是: 如果 {// 做一些 } (空($ _ SERVER [ 'HTTP_X_REQUESTED_WITH'])&&用strtolower($ _ SERVER [ 'HTTP_X_REQUESTED_WITH'])== 'XMLHttpRequest的'!) else { //将用户重定向到主页 } – Jake 2010-06-15 19:15:54
我不知道我是否受到攻击者的攻击保护..是否有任何资源用于furt她对此有何看法? – Jake 2010-06-15 19:17:57
您需要防止只是向您的AJAX处理程序发出任意请求的人。一种方法是将cookie设置为随机值。散列该cookie值并将其附加到您的AJAX请求:“https:// marketsite/getinfo/getstuff?verifier = [hashed_value]”。 AJAX请求将发送cookie和散列值,并且您可以验证请求是否为真。 – dana 2010-06-15 19:22:24