仍然在这里学习JSP Web应用程序。
我在网络应用程序中已经这样做了一段时间,但我想知道更安全的解决方案。
想象一个显示某些图书信息的表格。当用户单击表中的一行时, 我基本上将BookID与url一起发送。
示例网址。 http://locathost:8080/myapp/editbook.htm?bookID=3
在我的servlet中。
String strBookID = request.getParameter("bookID");
我认为这有点弱,有没有办法可以提供比这更安全的方式。 如果我将BookID与URL一起发送,黑客更容易编辑URL。
您可以在客户端和服务器端分享一些关于如何执行此操作的链接吗?
由于
答案 0 :(得分:2)
我认为这有点弱,有没有办法让我能提供更安全的方式。
您必须根据应用程序定义“安全”。对于出售书籍的公共网站而言,要求是完全不同的,这是一个托管机密卷的私人图书馆,而其他任何应用程序都在其中。
至少应该执行以下操作 -
对于公共网站,以上就足够了。你实际上希望人们发现你的书籍,所以如果有人修改了bookID,你就不应该在乎。
对于安全的库,您必须做更多的事情。
还有其他一些保护网址的策略;一些人使用令牌来确保URL没有被操纵。其他人不向客户端发送bookID,而是依赖于号码{1到n},其中只有服务器知道1对应于Book A,依此类推。但我们的想法是确保用户无法访问他没有权限的图书。
如果您使用Spring,我强烈推荐Spring Security。否则请查看JAAS。
答案 1 :(得分:0)
您必须假设任何用户都可以向您发送任何内容。解决方案不是避免用户在URL中发送数据,而是控制他们实际上可以执行以下操作。
您需要身份验证和授权。