你见过的最糟糕的安全漏洞是什么?为了保护罪犯,限制细节可能是个好主意。
不管怎样,这里有一个关于如果你发现了安全漏洞该怎么办的问题,还有一个关于如果公司(似乎)没有回应该怎么办的问题。
你见过的最糟糕的安全漏洞是什么?为了保护罪犯,限制细节可能是个好主意。
不管怎样,这里有一个关于如果你发现了安全漏洞该怎么办的问题,还有一个关于如果公司(似乎)没有回应该怎么办的问题。
当前回答
if( $session['role'] = "admin" ) //grant admin rights
只要少一个字符(“=”而不是“==”),就可以向登录的任何人授予管理权限。你是有罪的。
其他回答
按下Windows 98登录屏幕上的取消按钮,你就可以进入系统了。
有一次我有……创造性的差异……在我帮助建立的一个社区网站上,另一个编码器添加了一个新的PHP文件,该文件列出了审批队列中的文件,该文件还具有删除每个文件的链接。
不幸的是,这个脚本使用了整个通过模糊实现安全的概念。
不知何故,一个网络爬虫发现了这个页面,并跟踪了所有的删除链接。
不用说,修改元数据或删除文件的脚本现在需要登录。
附注:我与此无关,甚至不知道这个脚本的存在,直到当时的一位工作人员告诉我发生了什么。实际上,我现在又在为这个网站工作了,部分原因是为了确保这样的事情不会再发生。
一个“安全”的网站,每个页面都是加密的,但登录页面!
几年前,一位朋友给了我一把他发现的旧斧头,希望我告诉他这是一件古老的人工制品。所以,我在谷歌上搜索了一些可能有助于识别的网站,得到了一个链接到英国中部某处的博物馆网站。
只不过它把我放到的那个页面给了我整个网站的完全管理员权限。作为一个负责任的人,我更改了账户所有者的名字,这样他们就知道我不是在胡说八道,并给他们发了一封电子邮件,建议他们在更恶毒的人发现之前,把让我进入的漏洞堵上。
不用说,我收到了网站所有者的一封非常感谢的电子邮件,开发人员向他保证,错误已经被发现并修复了。尽管你不得不怀疑一个如此粗心大意的人的能力。
public class AuthenticationServlet extends HttpServlet
{
private String userName;
private String password;
protected doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
userName = request.getParameter("userName");
password = request.getParameter("password");
authenticateUser(userName,password);
......
}
}
显然,正如有人在自动化负载测试中发现的那样,单例和缺乏同步会导致安全问题。