【问题标题】:Allowing user to type html tags and save them to file to display on website允许用户输入 html 标签并将它们保存到文件以显示在网站上
【发布时间】:2013-12-11 12:51:03
【问题描述】:

我正在从头开始编写博客软件(主要是作为一种学习经验)。我让博主发新帖的方法是让他们把帖子打成表格(textarea),包括格式化标签,比如<br />,然后用PHP创建一个文件,写上内容文本区域。然后通过 iframe 将该文件加载到主博客页面中。

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

有什么建议吗??

【问题讨论】:

标签: javascript php html file security


【解决方案1】:

好吧,您可以使用strip_tags 去除不允许的标签。

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>');

会输出

<p>Hello, I am a paragraph. <a href="#">And I am a link</a></p>// I am something that will be stripped<p><a>

【讨论】:

  • 我是个菜鸟,我正在使用 strip_tags 来清理数据库输入,我没有仔细观察并意识到如果我愿意我可以让某些标签通过。嗬!谢谢!
  • @Feathers 没问题 :) 但我不相信清理数据库输入时的条带标签,因为它不会停止 sql 注入。 PDO 和准备好的语句是解决方案:)
  • 目前任何进入数据库的东西都在通过这个运行:
  • 函数 sanitizeString($var) { $var = stripslashes($var); $var = htmlentities($var); $var = strip_tags($var);返回 $var; } function sanitizeMySQL ($var) { $var = mysql_real_escape_string($var); $var = sanitizeString($var);返回 $var; }
  • @Feathers 对我来说看起来很安全,但为什么这么难? :) Stackoverflow 为 pdo 和准备好的语句提供了一个非常好的和简单的页面。 stackoverflow.com/tags/pdo/info
猜你喜欢
  • 2020-11-01
  • 1970-01-01
  • 2021-07-30
  • 1970-01-01
  • 1970-01-01
  • 2019-07-30
  • 1970-01-01
  • 2016-08-17
  • 1970-01-01
相关资源
最近更新 更多