将代码片段存储在数据库中

时间:2010-03-24 02:38:15

标签: mysql web-applications code-snippets

我想创建一个代码段数据库Web应用程序。将它存储在数据库中的最佳方法是在网页上显示片段时对html进行编码以阻止XSS吗?

感谢您的帮助!

4 个答案:

答案 0 :(得分:7)

数据库与此无关;您只需要在将它们呈现为HTML时转义它们。

至少,您需要将所有&编码为&amp;,将所有<字符编码为&lt;

但是,您的服务器端语言已经具有内置的HTML编码功能;你应该使用它而不是重新发明轮子。有关详细信息,请告诉我们您的服务器端代码所使用的语言。

根据您之前的问题,我假设您使用的是PHP 如果是这样,您正在寻找htmlspecialcharshtmlentities功能。

答案 1 :(得分:2)

存储时要么必须将其转义,要么在显示时将其转义。在显示器上执行此操作可能会更好,这样如果您以后需要对其进行编辑,则无需对其进行解码,然后对其进行重新编码。

此外,当您将其存储在数据库中时,您需要确保正确地将其转义,否则您将自己打开SQL注入。参数化语句是最好的方法,您根本不必更改原始数据。

答案 2 :(得分:0)

最好的办法是不将其存储在数据库中。我看到人们将存储过程作为一行存储在数据库中。只是因为你的意思并不代表你应该这样做。

答案 3 :(得分:0)

如何存储它并不重要,重要的是如何在HTML表示中呈现它。我猜你在渲染字节之前需要做一些卫生工作。另一种选择可能是将每个字符转换为HTML实体;这可能足以防止实际解释任何代码或标签。

作为示例,使用一些示例代码查看Stack Overflow页面的源代码,并查看它们如何在HTML中表示代码。