【发布时间】:2021-08-18 19:34:44
【问题描述】:
我正在尝试这样做,以便用户可以将信息插入到这样的 HTML 表单中
<form method="POST">
<textarea name="form" cols="58" rows="4" placeholder="form"></textarea>
<input type="submit" name="Create">
</form>
<?php
include("connection.php");
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$input = mysqli_real_escape_string($con, $_POST['form']);
$query = "insert into table (column) values('$input');
if (mysqli_query($con, $query)) {
header("Location: input.php");
}
?>
然后input.php就是
<?php
include("connection.php");
$query = "SELECT * FROM table";
$execute = mysqli_query($con, $query);
if ($execute) {
while ($row = $execute->fetch_assoc()) {
echo $row['column'];
}
}
?>
但是,用户可以只输入原始 HTML 代码,例如 .如何阻止用户插入它,而只是将其显示为常规文本?
【问题讨论】:
-
使用准备好的语句并正确编码您的输出,无论他们尝试注入多少 HTML、Javascript 或 SQL。