java - 限制对 Java Servlet 的访问

标签 java security servlets

我正在编写一个 Ionic 移动应用程序,它将 HTTP 请求发送到 Java servlet。 HTTP请求url包含用户信息,将用于更新后端数据库。但是,我不希望除我的应用程序用户之外的任何人通过从外部源发送 HTTP 请求来搞乱我的数据库。用户不需要登录即可使用我的应用程序,因此我无法验证发送请求的人员的身份。到目前为止,我想到的唯一解决方案是随请求一起发送 key ,然后在 servlet 上验证该 key 。然而,这种硬编码方式远不能令人满意。什么是更好的方法?或者我连接到后端错误?我愿意接受所有建议。

最佳答案

如果您在不验证用户凭据的情况下更新数据,那么任何人都可以更新它,因为这只是修改用户代理并嗅探负载中的 key 的问题,该 key 与 URL 本身一样 secret 。您必须找到一种方法来验证连接,例如,发送您要发送的数据的哈希值,并使用您在应用程序安装期间生成的唯一 key 和生成的用户 ID 进行加盐,并将其发送到你在安装过程中。然后,您可以将唯一 key 保留在数据库中,每当收到请求时,您都会对数据进行哈希处理并匹配哈希值,以确保它是从移动设备发送的。

关于java - 限制对 Java Servlet 的访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38622808/

相关文章:

java - 每个 Web 容器都需要自己的 servlet 实现吗?

html - 如何将数据从一个 jsp A 转发到 jsp B,然后将所有数据转发到最终的 servlet?

java - hibernate 搜索 : concurrent timeout exception

java - 作为参数传递的编辑列表似乎不起作用

security - 从DMZ中的Web服务器访问内部生产数据库中的数据

java - 在 Java 中,如何确保我的 Web 应用程序是线程安全的?

java - 从数据库添加不同的数据到 jComboBox

java - 如何在 Java 9 中以编程方式获取所有模块的列表?

c# - 如何保护将重要数据发布到我的数据库的公共(public) ASMX 页面

javascript - 如何在这里实现最大的网络安全