过滤网址仅允许公开显示的网址

时间:2016-09-23 20:11:22

标签: java security http

我的应用中的用户可以在他们之间发送消息,他们可以在内容中嵌入公共网站的图像。我想下载这些图片并将其存储在我自己的存储空间中,这样我的应用就会在从互联网上删除图片时中断。

我已经确定了安全隐患。

  • 如果用户发送的消息的img src以http://localhost开头,该怎么办?我将要求我自己的服务器。
  • 如果src是私有ip怎么办?我将连接到我的专用网络中的服务器。
  • 如果src是解析为127.0.0.1的主机。
  • ,该怎么办?
  • 我无法想到的其他令人讨厌的想法。

我可以做些什么来检查我是否从公共服务器下载图像而不是打击我的所有者。

我使用的是标准Java。

1 个答案:

答案 0 :(得分:1)

有针对此的前端和后端解决方案。

只是阻止您的应用接受此类链接。 使用模式以确保过滤某些内容,例如localhost链接或滥用链接。即使他们缩短了。 https://stackoverflow.com/a/8151742/2110818

或配置防火墙以确保在具有apache服务器的计算机上无法访问端口80和443。你可以做很多事情。

您正在使用或将要用于托管服务器的服务器?例如,您可以保护tomcat 或其他服务器并防止事情发生,例如:https://www.mulesoft.com/tcat/tomcat-security

此外,即使在他们的代码中,也应该尝试阻止任何类型的未经验证的重定向。所以,不要只关注外部威胁,你自己的代码可能会伤害你。查看此内容以了解更多信息:https://www.owasp.org/index.php/Unvalidated_Redirects_and_Forwards_Cheat_Sheet

但是,我认为防止内部和外部威胁的最相关解决方案是很好地配置您的机器并确保防火墙涵盖所有方面。有详细的安全服务器指南。