为了账号安全,请及时绑定邮箱和手机立即绑定

阻止 URL 漏洞

阻止 URL 漏洞

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

2 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

你提到你有一些用户,都指向不同的呼叫中心。如果您将用户存储在某处并且存储用户链接到哪个呼叫中心,那么您可以简单地在服务器端加载用户的呼叫中心,并且如果它的 ID 与作为参数,然后重定向到正确的呼叫中心页面。

如果没有存储用户的呼叫中心,则存储它。

如果你没有用户认证,那么你可以有一个公式,涉及服务器端的 IP 地址或客户端的 localStorage。

如果每个用户只允许一个呼叫中心,那么将呼叫中心的 id 作为 URL 参数是没有意义的。它弊大于利。


查看完整回答
反对 回复 2022-01-02
?
偶然的你

TA贡献1841条经验 获得超3个赞

有 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 个选项。


查看完整回答
反对 回复 2022-01-02
  • 2 回答
  • 0 关注
  • 148 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信