gpt4 book ai didi

mysql - 允许用户将 html 内容存储到数据库并在 web 上检索 html 内容需要哪些安全问题

转载 作者:行者123 更新时间:2023-11-30 23:19:32 29 4
gpt4 key购买 nike

在我的网站上,注册用户可以编写样式文本内容(我使用的是nicEdit),然后他们可以将它们存储在mysql 数据库中。我将它们的内容存储在 mysql 数据库的文本类型字段中。然后我允许用户检索他们的 html 内容以显示在网站的用户页面上。我的问题是,在将用户 html 内容发送到 mysql 数据库之前,我是否应该使用 mysql 注入(inject)避免技术。当用户在网络上检索 html 内容时,在网站上显示 html 内容之前我应该​​做什么。

最佳答案

转义unsafe_variable 中的特殊字符,或使用参数化查询来防止MySQL 注入(inject)。参数化查询被认为是更好的做法,但在变量中转义字符将需要更少的更改。

您需要使用带有适当 HTML 解析器的 HTML 清理库来向用户输出 HTML。参见示例 HTML purifier .

htmlspecialchars 将引用 HTML 中的所有标签,因此用户只会看到纯文本。您可以使用 strip_tags,但 strip_tags 不会真正验证 HTML,因此不推荐使用。

PDO 用法:

$unsafe_variable = $_POST["user-input"];
$sth = $mysqli->prepare("INSERT INTO table (column) VALUES (?)");
$sth->bind_param("s", $unsafe_variable);
$sth->execute();
$sth->close();

mysqli 用法:

$unsafe_variable = $_POST["user-input"]
$safe_variable = mysql_real_escape_string($unsafe_variable);
mysql_query("INSERT INTO table (column) VALUES ('" . $safe_variable . "')");

关于mysql - 允许用户将 html 内容存储到数据库并在 web 上检索 html 内容需要哪些安全问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16142601/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com