Javascript 允许用户键入html标记并将其保存到文件以显示在网站上

Javascript 允许用户键入html标记并将其保存到文件以显示在网站上,javascript,php,html,file,security,Javascript,Php,Html,File,Security,我从零开始写博客软件(主要是作为一种学习经验)。我允许博客所有者发表一篇新文章的方法是,他们将文章键入一个表单(textarea),包括格式化标记,如,然后使用PHP创建一个文件,并将其与文本区域的内容一起写入。然后通过iframe将该文件加载到主博客页面 我的问题是:我怎样才能使它合理地安全?目前,所有者可以键入任何内容(因此可能添加javascript或其他内容)。所有者界面位于登录屏幕后面,textarea内容永远不会保存到数据库中,只保存到一个文件中,因此我的MySQL足够安全。只是担心

我从零开始写博客软件(主要是作为一种学习经验)。我允许博客所有者发表一篇新文章的方法是,他们将文章键入一个表单(textarea),包括格式化标记,如

,然后使用PHP创建一个文件,并将其与文本区域的内容一起写入。然后通过iframe将该文件加载到主博客页面

我的问题是:我怎样才能使它合理地安全?目前,所有者可以键入任何内容(因此可能添加javascript或其他内容)。所有者界面位于登录屏幕后面,textarea内容永远不会保存到数据库中,只保存到一个文件中,因此我的MySQL足够安全。只是担心博客所有者(或任何通过登录屏幕的人)可能会创建危险的文件

有什么建议吗???

好吧,你可以用它去除不允许的标签

echo strip_tags('<p>Hello, I am a paragraph. <a href="#">And I am a link</a></p><script>// I am something that will be stripped</script>','<p><a>');
echo strip\u标签(“你好,我是一段。

//我是将被剥离的东西,”

//我是将被剥离的东西
你读过这篇文章吗?使用标记或bbcode并去除所有html标记,否则你的代码将面临一系列注入攻击,包括JS和其他相关xss风格的攻击可能与我是noob重复,我正在使用strip_标记清理数据库输入,我没有仔细查看,并意识到如果我想要.Doh!谢谢!@Feathers没问题:)但我不相信清理数据库输入时的strip标记,因为它不会停止sql注入。PDO和prepared语句是解决方案:)目前,任何进入数据库的内容都是通过以下方式运行的:函数sanitizeString($var){$var=stripslashes($var);$var=htmlentities($var);$var=strip_tags($var);return$var;}函数sanitizeMySQL($var=mysql_real_escape_字符串($var);$var=sanitizeString($var);return$var;}@Feathers对我来说很安全,但为什么这么难呢?:)Stackoverflow有一个非常好且简单的pdo和prepared语句页面。
<p>Hello, I am a paragraph. <a href="#">And I am a link</a></p>// I am something that will be stripped<p><a>