簡體   English   中英

PHP序列化對象數據是否適合Mysql注入?

[英]Is PHP Serialized Object Data Clean For Mysql Injection?

如果要序列化mysql注入,是否需要轉義對象數據?

即:

class Object
{
   public $description;
}

$obj = new Object();
$obj->description = mysql_real_escape_string("this is my crazy string with lot's of bad // characters");

$data = serialize($obj); // <-- $data will be stored in DB

或滿足以下條件:

class Object
{
   public $description;
}

$obj = new Object();
$obj->description = "this is my crazy string with lot's of bad // characters";

$data = serialize($obj);

是的,您必須轉義它(或使用准備好的語句)。

<?php
$obj = (object) array("--'--'" => "--'--");
var_dump(serialize($obj));

產量

string(44) "O:8:"stdClass":1:{s:6:"--'--'";s:5:"--'--";}"

如您所見,沒有逃避。

附帶說明,您應該將mysqli擴展名用於新代碼,而不是mysql擴展名。

序列化后,運行mysql_real_escape_string() 畢竟,這就是您要放入數據庫中的字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM