ajax - 如何保护ajax内容

标签 ajax linux apache http security

我在 almaconnect.com 上,主页上有一个文本框,当您键入时会自动建议一些大学结果(通过调用 ajax 加载内容)。我确实对相同的 ajax 调用发出了 curl 请求,但请求在终端上产生了一些加密行

curl 'https://www.almaconnect.com/suggestions/portaled_institute?q=am' -H 'Host: www.almaconnect.com' -H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0' -H 'Accept: application/json, text/javascript, */*; q=0.01' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br' -H 'X-Requested-With: XMLHttpRequest' -H 'Referer: https://www.almaconnect.com/' -H 'Cookie: Almaconnect=; _ga=GA1.2.315358219.1489989532; __utma=117457241.315358219.1489989532.1490871434.1492414070.3; __utmz=117457241.1490871434.2.2.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided); _gat=1; __utmb=117457241.1.10.1492414070; __utmc=117457241; __utmt=1'

我希望我的网站具有完全相同的功能,这样如果任何用户试图获取我的网站数据,他将无法获取。

最佳答案

当您进行 curl 调用时,您在终端中看到的任何二进制数据都不是加密内容。它只是压缩内容。您可以通过运行来验证它

curl $params > output 

您可以通过运行检查文件是否与任何已知文件格式匹配

file output

你会看到结果类似于

output: gzip compressed data, from Unix

运行 gzip -d -c output 将解压缩明文内容并将其打印到终端屏幕。

原因

发生这种情况的原因是,您通过 curl 调用发送了 accept-encoding header 。与浏览器不同,curl 不会自动解压缩结果。这就是造成这种困惑的原因。

 -H 'Accept-Encoding: gzip, deflate, br'

从 curl 调用中删除此特定 header 将使您直接获得未压缩纯文本格式的响应。您可以为此尝试以下命令。

curl 'https://www.almaconnect.com/suggestions/portaled_institute?q=am' -H 'Host: www.almaconnect.com' -H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0' -H 'Accept: application/json, text/javascript, */*; q=0.01' -H 'Accept-Language: en-US,en;q=0.5' -H 'X-Requested-With: XMLHttpRequest' -H 'Referer: https://www.almaconnect.com/' -H 'Cookie: Almaconnect=; _ga=GA1.2.315358219.1489989532; __utma=117457241.315358219.1489989532.1490871434.1492414070.3; __utmz=117457241.1490871434.2.2.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided); _gat=1; __utmb=117457241.1.10.1492414070; __utmc=117457241; __utmt=1'

总结

almaconnect.com 并没有真正采取任何额外的步骤来混淆他们的 AJAX 响应。这样做通常不是一个好主意。无论您使用什么方法来混淆您的响应(例如使用 HTTP Referrer 字段),人们总能想出反制措施来击败它们。

根本不值得花时间和精力来想出一个最终会被坚定的攻击者破坏的机制。

关于ajax - 如何保护ajax内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43447231/

相关文章:

javascript - 从 JavaScript 执行 Perl CGI 时出现问题

php - 尝试构建 php 代码时出现 Sublime 错误

linux - Apache在同一IP上配置多个站点,以便远程访问

performance - 每次迭代更改Apache Bench使用的POST数据

node.js - 使用pm2 apache配置nodejs api

apache - 如何使用 Plesk 编辑 php.ini 文件

php - Laravel 4.2 自定义分页按钮 - 用于 jQuery AJAX 调用的自定义按钮

jquery - 使用ajax mvc更新数据时如何更新表中的行

ajax POST,尝试添加目录链接两次添加路径

xml - 使用 xmlstarlet 编辑 XML 中的值