[英]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.