有没有办法通过将 php 保存到数据库中来清理 HTML 代码? [复制]

Posted

技术标签:

【中文标题】有没有办法通过将 php 保存到数据库中来清理 HTML 代码? [复制]【英文标题】:Is there anyway to clean HTML code via php being saved to a database? [duplicate] 【发布时间】:2012-05-28 02:06:05 【问题描述】:

可能重复:What's the best method for sanitizing user input with php?

我正在使用 TinyMCE 来允许用户编辑网页的一小部分。

此字段保存到数据库中。

是否有一个正则表达式可以用来清理传入的 html 代码,从而避免任何 XSS/NULL/DROP TABLES 类型的攻击?

我已经在单行输入文本/数字等上完成了此操作,但不确定在接收 HTML 字符串时如何处理。

【问题讨论】:

【参考方案1】:

我建议使用HTMLPurifier。

【讨论】:

谢谢@raina77,我去看看!【参考方案2】:

您可以使用 PHP 函数:striptagshtmlspecialchars

http://php.net/manual/en/function.strip-tags.php

【讨论】:

这将清除 TinyMCE 生成的 HTML。他希望允许 HTML 但删除任何 XSS 威胁。 @MrCode 是正确的。我不想剥离任何标签,只是剥离危险的标签或 javascripts。【参考方案3】:

你可以用这个 -

 function safe_sql($obj)

    $obj = htmlspecialchars($obj);
    $obj = str_replace('"',""",$obj);
    $obj = str_replace("'","'",$obj);
    $obj = str_replace("`","`",$obj);
    $obj = mysql_real_escape_string($obj);
    return $obj;

我正在使用它,它工作正常。 并且你也可以使用这个功能使其正常(在你从数据库中拉取数据之后) -

 function to_Normal($data)

    $data = htmlspecialchars_decode($data);

    $data = str_replace(""",'"',$data);
    $data = str_replace("'","'",$data);
    $data = str_replace("`","`",$data);
    $data = nl2br($data);
    return $data;

【讨论】:

以上是关于有没有办法通过将 php 保存到数据库中来清理 HTML 代码? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在 php 中将 XML 文档转换为数组时,有没有办法将其转换回来并将其保存为属性为元素的 XML 文件?

有没有办法在 php 中隐藏加密密钥或算法?

如何通过将 csv 数据存储在变量中来将其访问到 yml 文件中?

PHP 将远程图像保存到 Amazon S3

捕获图像而不保存

有没有办法将flutter_tts文件保存到firebase存储?