阻止 URL 漏洞

在我的应用程序中,我们有许多用户都与不同的呼叫中心有关。在 URL 中有一个向后黑客,他们可以call_center=number在 ? 它会将他们定向到不同的呼叫中心数据页面。切断这种可能性的最佳方法是什么?如果他们尝试编辑 URL,我想将他们重定向到他们所在的当前页面。我应该使用什么方法来修复这个漏洞?

繁星点点滴滴
浏览 149回答 2
2回答

holdtom

你提到你有一些用户,都指向不同的呼叫中心。如果您将用户存储在某处并且存储用户链接到哪个呼叫中心,那么您可以简单地在服务器端加载用户的呼叫中心,并且如果它的 ID 与作为参数,然后重定向到正确的呼叫中心页面。如果没有存储用户的呼叫中心,则存储它。如果你没有用户认证,那么你可以有一个公式,涉及服务器端的 IP 地址或客户端的 localStorage。如果每个用户只允许一个呼叫中心,那么将呼叫中心的 id 作为 URL 参数是没有意义的。它弊大于利。

偶然的你

有 3 种方法可以解决这个问题,我可以立即想到。第一的为您的呼叫中心提供一个随机或半随机值,而不是序列号。那样的话,人们从呼叫中心 2 转到呼叫中心 3 会更困难。如果他们有时间弄清楚有一个呼叫中心 3RG5,他们手头上的时间比等待时间要多,除非他们建立开始尝试不同组合的脚本。那时,可能很容易发现他们的尝试,并可能在他们加载的下一个页面中添加一条消息,例如锁定消息,或者他们在那一分钟内尝试了太多次。第二如果您POST在站点内进行导航,请使用body代替 URL。PHP 获取 a 的主体POST:# Get JSON as a string$json_str = file_get_contents('php://input');# Get as an object$json_obj = json_decode($json_str);https://davidwalsh.name/php-json使用POST主体的 AJAX 调用的 JavaScript :var xhr = new XMLHttpRequest();  xhr.open(form.method, form.action, true);  xhr.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');  // send the collected data as JSON  xhr.send(JSON.stringify(data));  // This is the body of the POST  xhr.onloadend = function () {    // done};JSON 格式的 POST 数据用户仍然可以伪造这一点,但它涉及更多,而且不太可能是“任何人”。第三通过验证用户(如果他们是登录用户)来确保用户有权访问该页面。如果他们未登录,则返回其他 2 个选项。
打开App,查看更多内容
随时随地看视频慕课网APP