我在 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/