2016-08-20 4 views
0

MySQL 데이터베이스에 PHP 개체를 안전하게 저장하려면 어떻게해야합니까?MySQL 데이터베이스에 PHP 객체를 저장하는 안전한 방법은 무엇입니까?

serialize 및 unserialize 기능을 사용하면 Object Injections (https://www.owasp.org/index.php/PHP_Object_Injection)로 끝날 수 있습니다.

처리 방법에 대한 사전 정의 된 표준이 있습니까?

SQL 주입 =/= 객체 주입! 그래서 PDO는 다른 이야기입니다!

당신이 JSON과 같은 그럼 당신은 MySQL의에 저장하고 json_decode을 사용할 수 있습니다로 json_encode

json_encode($object); 

를 사용하여 MySQL의에서 개체를 저장할 수 있습니다

+1

unserialize를 사용할 때 아무 문제가 없습니다. 안전하지 않은 것은 사용자 입력을 직접 전달하여 직렬화 해제하는 것입니다. 어쨌든 IMHO는 데이터베이스에 객체를 저장하기 위해 JSON과 같은 더 이식성있는 것을 사용하는 것이 좋습니다. – isalgueiro

+0

@isalgueiro가 뭐라고 말합니까? 당신의 서버가 객체를 직렬화하고 직렬화하고 있다면 아무런 문제가 없다. 사용자 입력이 필요 없다. – Erik

답변

1

객체로 우리에게 그것을 시작도

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

, 최고의 JSON을 MySQL 데이터베이스에 저장하여 텍스트로 저장하는 방법

+0

은 JsonSerializable이 아닙니다. – yoano

+0

사용할 필요가 없습니다. 그냥 json_encode하고 데이터베이스에 객체를 저장하십시오. –

0

그냥 텍스트로 저장하십시오. serialize 또는 json_encode를 사용할 수 있습니다.

그러나 유연한 UI가 있거나 멋진 프론트 엔드 프레임 워크를 사용한다면 json_encode는 아약스 게시물에서 직접 반환 할 수 있기 때문에 제안 할 것입니다.

그냥 2 센트입니다.

관련 문제