HTML格式的textarea输入的安全措施,由PHP处理,其内容应为HTML(带有div p和其他标记)

HTML格式的textarea输入的安全措施,由PHP处理,其内容应为HTML(带有div p和其他标记),html,forms,sanitization,Html,Forms,Sanitization,我有个问题。我想到了形式安全。我有一个字段是文本区域。默认情况下,它是隐藏的,而是显示一个富文本编辑器(如果它起作用,则显示CKEditor)。我想做的是: 只允许来自YouTube的iFrame(因为可能会有人发布带有视频的教程),但我不希望来自其他可能有害的来源的iFrame 因此,我不允许使用图像(正如我所读到的,这些元素也存在安全漏洞) 我最后一个也是最大的安全问题是如何防止SQL注入,因为它是一个内容丰富的领域 家庭作业: 我考虑过创建一个var(例如,$fake\u input=$a

我有个问题。我想到了形式安全。我有一个字段是文本区域。默认情况下,它是隐藏的,而是显示一个富文本编辑器(如果它起作用,则显示CKEditor)。我想做的是:

  • 只允许来自YouTube的iFrame(因为可能会有人发布带有视频的教程),但我不希望来自其他可能有害的来源的iFrame
  • 因此,我不允许使用图像(正如我所读到的,这些元素也存在安全漏洞)
  • 我最后一个也是最大的安全问题是如何防止SQL注入,因为它是一个内容丰富的领域
  • 家庭作业:

  • 我考虑过创建一个var(例如,$fake\u input=$actual\u input)。之后,用preg_match_all计算iFrame和youtube链接在$actual_输入中出现的次数。接下来,从每个iframe中删除$fake_输入并计算youtube链接。因此,在剥离之后,以下等式必须有效,否则会有来自另一个源的iframe$假youtube链接=$actual\u youtube\u链接-$actual\u iframes 所以,假设我们有一个来自iframe的youtube链接,1个恶意iframe和一个正常(youtube one)iframe,它必须是1=1-2,这不是真的,所以会出现错误
  • 我想用preg_替换照片
  • 最后一部分,这是我考虑过的策略。如步骤1所示,输入$fake_。删除所有代码示例(仅用于说明目的)。然后在清理样本后,检查MySQL保留字/短语的其余输入,如DELETE、ALTER、TRUNCATE等

  • 任何帮助都将不胜感激

    为什么不简单的htmlspecialcharacter()?在将您的数据保存到数据库之前,您将不会遇到问题

    我刚刚看到它(它的功能是什么)并将一些“危险”字符转换为html实体。抱歉,如果我问了一些“愚蠢”的问题,但这对SQL注入来说足够了吗?即使如此,我还应该注意哪些其他危险?为了避免sql注入,请使用预先准备好的语句。除此之外,您应该使用htmlspecialchars()或htmlentities()对任何html进行“编码”。