相关疑难解决方法(0)

如何在PHP中阻止SQL注入?

如果插入用户输入而不修改SQL查询,则应用程序容易受到SQL注入的攻击,如下例所示:

$unsafe_variable = $_POST['user_input']; 

mysql_query("INSERT INTO `table` (`column`) VALUES ('$unsafe_variable')");
Run Code Online (Sandbox Code Playgroud)

这是因为用户可以输入类似的内容value'); DROP TABLE table;--,查询变为:

INSERT INTO `table` (`column`) VALUES('value'); DROP TABLE table;--')
Run Code Online (Sandbox Code Playgroud)

可以采取哪些措施来防止这种情况发生?

php mysql sql security sql-injection

2776
推荐指数
28
解决办法
166万
查看次数

围绕mysql_real_escape_string()的SQL注入

即使使用mysql_real_escape_string()函数,是否存在SQL注入的可能性?

考虑这个示例情况.SQL是用PHP构造的,如下所示:

$login = mysql_real_escape_string(GetFromPost('login'));
$password = mysql_real_escape_string(GetFromPost('password'));

$sql = "SELECT * FROM table WHERE login='$login' AND password='$password'";
Run Code Online (Sandbox Code Playgroud)

我听过很多人对我说,这样的代码仍然很危险,即使使用了mysql_real_escape_string()函数也可以破解.但我想不出任何可能的漏洞?

像这样的经典注射:

aaa' OR 1=1 --
Run Code Online (Sandbox Code Playgroud)

不工作.

你知道任何可能通过上面的PHP代码注入的注入吗?

php mysql sql security sql-injection

596
推荐指数
4
解决办法
22万
查看次数

清理用户密码

在散列它们并将它们存储在我的数据库中之前,我应该如何逃避或清除用户提供的密码?

当PHP开发人员考虑出于安全目的而考虑哈希用户的密码时,他们往往会像对待任何其他用户提供的数据一样考虑这些密码.这个主题经常出现在与密码存储相关的PHP问题中; 开发人员经常希望使用诸如escape_string()(在各种迭代中)等功能清理密码htmlspecialchars(),addslashes()然后再对其进行散列并将其存储在数据库中.

php sql hash pdo

95
推荐指数
2
解决办法
5100
查看次数

PHP:将表格中的值插入MySQL

我在终端创建了一个users表,mysql我正在尝试创建简单的任务:从表单中插入值.这是我的dbConfig file

<?php
$mysqli = new mysqli("localhost", "root", "pass", "testDB");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}
?>
Run Code Online (Sandbox Code Playgroud)

这是我的Index.php.

<!doctype html>
<html>
 <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="description" content="$1">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <link rel="stylesheet" type="text/css" href="style.css">

    <title>test</title>

    <?php
    include_once 'dbConfig.php';
    ?>

</head>
<body>
     <?php
    if(isset($_POST['save'])){
        $sql = "INSERT INTO users (username, password, email)
        VALUES ('".$_POST["username"]."','".$_POST["password"]."','".$_POST["email"]."')";
    }

    ?>

    <form method="post"> 
    <label id="first"> First name:</label><br/>
    <input …
Run Code Online (Sandbox Code Playgroud)

html php mysql

8
推荐指数
2
解决办法
27万
查看次数

Canonical:如何将HTML表单数据保存到MySQL数据库中

这是使用PHP将数据从(HTML)表单保存到MySQL数据库的规范问题和答案.

如果您尝试执行以下操作,这适用于您:

  1. 接受HTML表单上的用户输入
  2. 使用PHP脚本处理输入
  3. 将所述输入存储到MySQL数据库中.

过去提出的类似问题的示例不应使用:

连接PHP代码并将表单提交到mySQL数据库
使用php/html表单插入mysql - 不工作
如何使用PHP将HTML表单数据传递给MYSQL数据库并将数据返回到浏览器
将表单数据保存到数据库

简而言之,如果您有疑问,请继续阅读:我想使用HTML表单,PHP和MySQL或类似的方式将用户输入存储到数据库.

php mysql forms

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

php ×5

mysql ×4

sql ×3

security ×2

sql-injection ×2

forms ×1

hash ×1

html ×1

pdo ×1