成功登录后,用户被重定向到menu.php,这是唯一可以进行密码保护操作(活动)的文件。
如果用户需要添加新公司我有链接
<a href="menu.php?add_new_company" title="">Add new company</a>
下面的文件是代码
if ($_SERVER['QUERY_STRING'] == 'add_new_company') { echo 'Input form' }
已经读到这是不安全的,这是糟糕的设计。但是不明白别人怎么能破解它。 请提出有安全问题的建议(如果有的话)(某人如何破解)?
更新
成功登录后,将创建令牌并将其记录在mysql中。在menu.php中检查令牌是否为issset,如果是,则连接到mysql,检查是否存在。 如果没有在mysql中存在或不存在,则重定向到登录。
答案 0 :(得分:2)
请注意,任何人都可以访问menu.php?action=add_new_company
,登录或不登录。您可以在menu.php
页面上实际进行会话验证。
从那里开始,你发布的内容并没有真正的不安全或可被利用,只要该请求的输出不依赖于用户输入(否则我们会有XSS)。
这只是糟糕的设计,因为它不是格式正确的查询字符串。查询字符串应该包含key=value
列表,并不打算以这种方式使用。
我会选择以下内容:
<a href="menu.php?action=add_new_company" title="">Add new company</a>
和
if ($_GET['action'] == 'add_new_company') { echo 'Input form' }
答案 1 :(得分:2)
如果我理解正确,有人可以致电menu.php?add_new_company
并可以创建一个没有密码保护的新公司吗?只有菜单受密码保护?
这是非常不安全的,因为如果用户之前某个时间登录并且知道URL,或者只是猜测它,他可以(再次)在没有密码的情况下进行身份验证。
请参阅OWASP secure coding practices,特别是身份验证和密码管理
部分