我正在做一个聊天室网站,目前用户可以在输入框中输入任何他们喜欢的内容并将其发送给所有在线用户。但恐怕不安全,一旦有坏人发送恶意 html/javascript 代码来破坏所有其他用户?
如何避免这种情况发生?
最佳答案
大家说的都是对的;您需要在将所有数据发送给用户之前对其进行编码。
不过,我只是想补充一点:请确保使用您正在使用的 Web 框架提供的内置(因此经过充分测试)方法在服务器上进行此编码 .
不要尝试在客户端上的 JavaScript 中执行此操作;用户还可以输入更多恶意代码,这些代码会破坏 JavaScript 本身。
并且,不要尝试“推出自己的”编码机制,也不要尝试使用黑名单方法,在这种方法中,您尝试仅查找某些“坏”有人可以进入并替换它们的东西。你永远猜不到所有“坏事”是什么。
您没有提及您的 Web 框架,但大多数框架都有一个内置功能,可以对整个字符串进行 HTML 编码,以便该字符串将按字面意思显示在浏览器中,无论内容是什么就在其中。
关于javascript - 如何避免聊天室应用程序中的恶意发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4224598/