防止恶意外部脚本

Tra*_*ark 2 php mysql security image bbcode

我目前正在使用PHP和MySql开发游戏.我想让用户能够使用BBCode解析器(NBBC)显示图像,但我已经意识到潜在的安全问题.

请允许我解释一下:

  1. 用户使用诸​​如[img] http://example.com/image1.png [/ img]之类的代码将URL输入到textarea框中

  2. 然后,用户可以将外部服务器上的image1.png编辑为存储用户信息(ip ect)等的服务器端脚本.

  3. 用户使用信息做一些可能讨厌的东西!

我的问题是,在使用外部资源进行详细设计时,我们如何防止这种情况发生并保护用户详细信息?

显而易见的答案是只允许上传到您的网站,但在这种情况下,这似乎并不太实际.

感谢任何帮助!

hak*_*ick 5

实际上你可以通过改变

[img]http://example.com/image1.png[/img] 
Run Code Online (Sandbox Code Playgroud)

变成这样的东西:

<img src="http://yourserver/proxy.blah?url=example.com/image1.png" />
Run Code Online (Sandbox Code Playgroud)

这样您的代理就会加载图像而不是用户.