我的网站包含原型框架并使用PHP进行编程。 (我知道非常非常基本的JavaScript)原型请求Ajax.Updater每个请求的安全/认证
网站正常游客&其行为
有些什么类似KeepVid一样.COM
A)它有一个输入框,用户把链接和比按提交。 (?var = userfoo通过原型框架工作执行)(该请求发送到同一页面action = index.php)
B)它显示加载gif比它显示结果默认情况下它隐藏并显示请求。
C)现在父窗口html(主页)不刷新或重新加载。
D)用户再次把链接,并按提交它做一个相同的过程。
每件事情都很有用,但我在检查日志时发现问题。有些人使用脚本来抓取我的输出。不是普通的访问者,你可以说或者是leechers。
问题:
1)但是,如果有人放HTTP:在浏览器// URL VAR = foo的& VAR =栏就会生成div的输出内容,这意味着无主网页的访问。任何人都可以通过查询并直接得到结果。
2)我尝试使用会话令牌但它失败,因为它在div中重新生成。也没有刷新父级,所以会话令牌不匹配(这个只有与AJAX请求1的请求给出输出没关系,但第二个请求由于父令牌相同而失败,并且提交按钮使用相同的令牌)在纯PHP它的工作原理是刷新页面,但我不想刷新页面。我只是想显示加载gif。
3)任何人都可以使用curl php并抓取页面。所以我想要一个Javascript验证(HIDDEN)。如果失败,则启动验证码,如果Javascript被禁用,则启动验证码安全。我不想让它在详细或通过命令行或通过其他脚本(用于抓取)上工作。
4)我不确切知道这些东西被称为什么。我认为他们是XHR。
我想从我的网站提供安全
1)URL变量注入象 ?变种= foo的& & VAR2 =酒吧 也让转换(如果有的身体确实是)转移该页面 ?重定向= foo和负载炫魅,并将该重定向值输入框
2)基于服务器的验证,但里面的股利和必须显示加载GIF和DONOT重新加载整个页面..
东西,我看了,但失败...
1)JCryption但它需要jQuery的比我要重新编码的一切......
2)
// If the request did not come from AJAX, exit:
if($_SERVER['HTTP_X_REQUESTED_WITH'] !='XMLHttpRequest'){
exit;
}
此命令失败,IE7浏览器。 (这是唯一的最佳方法,但不能在一个浏览器中失败)还有一个问题是,如果某个创建者在本地主机上运行它,则将该动作更改为http://myurl,而不会接受它。另外,如果我们使用curl来发送自定义标题,那么它将会失败。
3)使用JavaScript加密和PHP解密。有些JS将Enrypt和PHP功能解密。 (通过使用隐藏的表单元素输入) 这也是一个很好的方法,但我很难编辑的源来传递变量我的意思是从div到服务器。
也使用其他几种方法,但我认为所有上述方法是最好的描述我的问题... 请明白,解决方案可能是非常小或大,但我不明白JavaScript非常亲切地阐述。
或将其作为参数添加到AJAX URL? – Altainta 2011-02-01 17:09:42