2016-08-20 13 views
0

MySQLデータベースにPHPオブジェクトを安全に保存するにはどうすればよいですか?MySQLデータベースにPHPオブジェクトを保存する安全な方法は?

serialize関数とunserialize関数を使用すると、Object Injections(https://www.owasp.org/index.php/PHP_Object_Injection)になることがあります。

これを処理する方法には事前定義された標準がありますか?

SQLインジェクション=/=オブジェクトインジェクション! PDOは別の話です!

+1

unserializeの使用については何も問題ありません。安全でないのは、ユーザの入力を直接渡して、直列化を解除することです。とにかくIMHOはJSONのような移植性の高いものをデータベースに格納する方が良いです。 – isalgueiro

+0

@isalgueiroとは何ですか?あなたのサーバがオブジェクトをシリアライズしてシリアル化している場合は、問題はありません。ユーザ入力はありません。 – Erik

答えて

1

あなたは、あなたがMySQLの中でそれを格納し、オブジェクトも

$object = json_decode($result->object); 

として私たちにそれを起動するためにjson_decodeを使用し、最高のことができますjson_encode

json_encode($object); 

を使用してJSONなどのMySQLにオブジェクトを保存することができますJSONをMySQLデータベースに保存してテキストとして保存する方法

+0

はJsonSerializableではありませんか? – yoano

+0

使用する必要はありません。 json_encodeだけでオブジェクトをデータベースに保存する –

0

テキストとして保存するだけです。あなたは、serializeまたはjson_encodeを使うことができます。

しかし、柔軟なUIを持っているか、素敵なフロントエンドフレームワークを使っているなら、json_encodeはajax投稿で直接返すことができます。

ちょうど私の2セントです。

関連する問題