我正在寻找以下解决方案:
我有一段JS代码,它执行重定向到使用PHP构造的URL,并且只有当用户按下确认对话框上的按钮时才会进行重定向。
代码如下:
function one() {
window.location.replace("<?php
if($new_redir == "1") {
echo "$new_second_redirect_URL/?token=$hash";
}
else {
echo "$second_redirect_URL/?token=$hash";
}
?>");
}
它完美无缺。我想要做的是隐藏用户打开页面时源代码中显示的URL。
最好的方法是什么?
答案 0 :(得分:0)
说实话,你过分考虑了这一点。
如果他们想要避开确认屏幕并从来源获取网址,那么你可以做的并不多。
最好的确可能是在确认时执行AJAX请求并从响应中获取基于CSRF令牌的URL并使用它,但这也可能最终成为过度杀伤。
您还可以将其设置为具有一些隐藏字段的实际<form></form>
表单(再次,例如CSRF令牌),并执行帖子验证onclick。如果成功 - 重定向它们。
更新:
使用robots.txt停止机器人 使用JS构建QS以阻止大多数机器人,例如:
var csrftoken='XJIWHEOU324uipHFOFUHR';
var url="http://url.com/page.php?token=";
url=url+csrftoken;
你还能做什么,实际上就像我们一样,虽然对你的用例来说可能太多了。 将每个页面加载记录到数据库中,并在确认后检查他们是否是第一次访问该页面的访问者。
AJAX调用(jQuery示例):
$.post( "url_to_backend_page_to_get_url", {hasSubmittedForm:"true"}, function( data ) {
window.location.href = data;
});