相关疑难解决方法(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万
查看次数

如何从"Bobby Tables"XKCD漫画中注入SQL?

只看:

XKCD Strip (来源:https://xkcd.com/327/)

这个SQL做了什么:

Robert'); DROP TABLE STUDENTS; --
Run Code Online (Sandbox Code Playgroud)

我知道这两个'并且--是用于评论,但是这个词也没有DROP被评论,因为它是同一行的一部分?

security validation sql-injection

1070
推荐指数
13
解决办法
19万
查看次数

如何在我的mysql表中插入时间戳

在mysql表中,我有一个名为date的字段,其类型称为timestamp,默认值为CURRENT_TIMESTAMP.但是,如果我在mysql中将该字段留空,则会出错.当我尝试像time()那样插入一些东西时,我会收到日期为00:00:00.

  <?php
    $name         = "";
    $email        = "";
    $subject      = "";
    $comments     = "";
    $nameError    = "";
    $emailError   = "";
    $subjectError = "";
    $x            = 5;
    function filterData($data)
    {
        $data = htmlspecialchars($data);
        $data = stripslashes($data);
        return $data;
    }
    $connection = mysql_connect('host', 'user', 'pass');
    if (!$connection) {
        die('Could not connect: ' . mysql_error());
    }


    $select_database = mysql_select_db("contact");

    if (!$select_database) {
        echo "could not select database " . mysql_error();

    }
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        //handles the name 
        $name = filterData($_POST["name"]);
        if …
Run Code Online (Sandbox Code Playgroud)

php mysql

15
推荐指数
3
解决办法
7万
查看次数

ADOdb中的SQL注入和一般网站安全性

我已经做了很多阅读,但仍然不理解100%SQL注入的发生方式!

我想从那些知道基于我的例子的SQL注入的具体例子中看到它,因此它可以被复制,测试和修复.我试过SQL注入我的代码而不能,所以我希望有人来证明我的意思!

1.我认为SQL注入只能通过POST或GET方法进行,这意味着在网站上它应该是帖子形式,例如'注册或搜索'或查询如'search.php?tags = love'?

说这可以注入以下具有POST方法的代码吗?

$name     = trim($_POST['username']);
$mail     = trim($_POST['email']);
$password = trim($_POST['password ']);

   if ($errors == "false") {
    $sql = 
        "INSERT INTO 
           clients 
         SET 
           name='" . mysql_real_escape_string($name) . "',
           mail='" . mysql_real_escape_string($mail) . "', 
           password='" . mysql_real_escape_string(sha1($password)) . "'";
           $connection->execute($sql);

    }
Run Code Online (Sandbox Code Playgroud)

2.另一个有GET方法: rate.php?like&videoID=250&userID=30

$sql = 
    "SELECT 
        videoID 
     FROM 
        likes 
     WHERE 
        videoID = '" .mysql_real_escape_string($videoID). "' AND UID = '" .mysql_real_escape_string($userID). "' LIMIT 1";
        $connection->execute($sql);
Run Code Online (Sandbox Code Playgroud)

请帮助那些对主题感到自由的人,但请使用具体的例子.

提前谢谢,
伊利亚

php mysql security sql-injection adodb

10
推荐指数
1
解决办法
4486
查看次数

将格式为MM/DD/YYYY的日期转换为MySQL日期

我有一个PHP函数,它以MM/DD/YYYY 我需要的格式传递日期然后转换它,以便它可以添加到类型的MySQL字段date

我将如何在PHP中执行此操作?

php mysql

9
推荐指数
2
解决办法
3万
查看次数

MySQL日期插入错误

我正在尝试插入格式化为2012年8月12日的日期,但是当我在插入后检查数据库集时,我只能在日期字段中看到00-00-0000

这是我使用的查询:

$query= "INSERT INTO ambition_opportunities SET

 opp_deadline='".strtotime($_POST['deadline'])."'"; // date field come with date picker** 

 $sql = mysql_query($query) or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)

谢谢

php mysql

4
推荐指数
1
解决办法
796
查看次数

日期在mysql中插入as 0000-00-00 00:00:00

我的$date输出是在foreach循环中

09/25/11,02/13/11,09/15/10,06/11/10,04/13/10,44/13/10,04/13/10,09/24/09,22/19/09年12月21日

我的mysql查询(PHP)如下

("INSERT INTO table_name(`field1`, `field2`,`date`) VALUES ('".$value1."','".$value2 ."','".$date."')");
Run Code Online (Sandbox Code Playgroud)

问题:在我的数据库中,所有日期都存储为0000-00-00 00:00:00.但第4个日期(06/11/10)存储为2006-11-10 00:00:00.

我试过date('Y-m-d H:i:s', $date);但没有帮助.

注意:我的数据库字段是日期时间类型.任何的想法?

php mysql

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

标签 统计

mysql ×6

php ×6

security ×3

sql-injection ×3

adodb ×1

sql ×1

validation ×1