2010-05-05 3 views
2

데이터를 저장하기 위해 직렬화 된 배열을 사용하는 PHP 스크립트를 작성하고 있습니다. 직렬화에 주입을 방지하려면 어떻게해야합니까? 귀하의 계정 이름을 매우 쉽게 지정할 수 있습니다 :PHP에서 배열을 직렬화하여 삽입을 방지합니다.

something";s:6:"access";s:5:"admin"; 

간단한 예제입니다. 그런 다음 사용자는 필요한 나머지 매개 변수를 어떻게 든 추가 할 수 있습니다. addslashes이 작동합니까? php unserialize가 이스케이프 된 캐릭터라는 것을 인식합니까? 그렇다면 반복을하지 않고서 전체 배열에 addslashes를 적용 할 수 있습니까?

도움 주셔서 감사합니다.

+0

그것의 소리에서, 나는 그렇게 생각하지 않을 것이다. 단지 안전하기 위해서 : 당신은 이것을 $ _COOKIE/$ _ POST/$ _GET/$ _ REQUEST에 저장하지 않는다, 너는? – Reece45

+0

안돼. 곧바로 데이터베이스 안팎으로 나가고 있습니다. – Cyclone

답변

3

있는 문자열 배열을 직렬화하려고하는 것입니다 찾을 수있는 가장 좋은 방법 "에

어쨌든 :

$ php -r "var_dump(unserialize(serialize(array('\"'))));" 
array(1) { 
    [0]=> 
    string(1) """ 
} 
: 예, 직렬화 데이터에 따옴표 당신이 저장하는 대한 계정을하지
관련 문제