【问题标题】:How to prevent PHP SQL Injection using PHP URL parameters如何使用 PHP URL 参数防止 PHP SQL 注入
【发布时间】:2019-10-19 13:10:00
【问题描述】:

我的 index.php 中有以下代码:

<?php
  if(isset($_POST["value"])) {
     $conn = new mysqli("localhost", "user", "pw", "database");
     $sql = "INSERT INTO table (`value`) VALUES ('".mysql_real_escape_string($_POST["value"])."')";
     if ($conn->query($sql) === TRUE) {
        echo "Value inserted.";
     } 
     $conn->close(); 
   }
?> 
<body>
    <form action="index.php" method="post">
    <input placeholder="example" class="inputfield" type="text" name="value" />
    <button class="button" type="submit"> Submit </button>
    </form>
</body>

如何防止有人通过发送这样的发布请求将他喜欢的任何内容插入数据库:

localhost/index.php?value=whatever

感谢您的帮助。

编辑:问题已解决:如果服务器正在使用“发布”请求,则用户无法输入 url 参数。

【问题讨论】:

标签: php html sql database security


【解决方案1】:

您在代码中接受 POST 请求,但想要阻止 GET。他无法使用带有此代码的 get 插入它。你应该查一下关于 SQL 注入和表单提交的知识

【讨论】:

    猜你喜欢
    • 2013-04-14
    • 2018-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多