我正在创建一个聊天室网站,当前用户可以在输入框中输入他们喜欢的任何内容,并将其发送给所有在线用户。但是,一旦有一些坏蛋发送恶意的html / javascript代码来破坏所有其他用户,这恐怕并不安全。

如何避免这种情况发生?

最佳答案

每个人已经说的是对的;您需要先对所有这些数据进行编码,然后再将其发送给用户。

不过,我只是想添加:确保使用您所使用的Web框架提供的内置(因此,经过了充分测试)的方法在服务器上进行此编码。

不要尝试在客户端的JavaScript中执行此操作;用户可能会输入其他恶意代码,从而破坏JavaScript本身。

而且,请勿尝试“滚动自己的”编码机制,也不要尝试使用黑名单方法,在该方法中,您尝试仅查找某人可以输入的某些“不良”东西,并替换它们。您将永远不会猜到所有“坏事”是什么。

您没有提到您的Web框架,但是大多数框架都具有内置功能,该功能可以HTML编码整个字符串,以便无论在浏览器中包含什么内容,该字符串都将在字面上显示。

07-24 09:50
查看更多