gpt4 book ai didi

php - PHP 表单提交中的分号

转载 作者:行者123 更新时间:2023-11-29 13:53:43 25 4
gpt4 key购买 nike

两个相关的问题应该很容易,尽管我的搜索结果是空的。

  1. 我有一个 PHP 版本。如果字段中有分号,并且我在操作页面中转储 $_POST,则字段值会在分号处被截断。我猜这与 SQL 注入(inject)安全性有关?但需要允许使用合法的分号。有没有一个设置可以让这个过程发生?或者我是否需要逃避它,如果需要,如何逃避?

  2. 要捕获实际的 SQL 注入(inject),我不需要在一个查询中允许多个语句...例如“SELECT * FROM table;DROP table”。是否有一个设置可以在 PHP 或 MySQL 中禁用此功能,但不会停止合法的分号?

最佳答案

分号不会引起任何问题。

使用准备好的语句。

mysqli :

$stmt = $dbConnection->prepare('SELECT * FROM employees WHERE name = ?');
$stmt->bind_param('s', $name);

$stmt->execute();

$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
// do something with $row
}

PDO :

$stmt = $pdo->prepare('SELECT * FROM employees WHERE name = :name');

$stmt->execute(array(':name' => $name));

foreach ($stmt as $row) {
// do something with $row
}

使用mysql_real_escape_string

$unsafe_variable = $_POST["user-input"];
$safe_variable = mysql_real_escape_string($unsafe_variable);

mysql_query("INSERT INTO table (column) VALUES ('" . $safe_variable . "')");

查看此问题以获取更多信息 How can I prevent SQL injection in PHP?

关于php - PHP 表单提交中的分号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16247860/

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