XSS 공격을 막기 위해 아래 코드를 사용했습니다.htmlspecialchars json_decode가 깨졌습니다.
get, post 요청을 모두 정리합니다. 괜찮 았어.
하지만 지금은 문제가 발생합니다. 코드에는 json_decode를 사용하는 곳이 많이 있습니다.
예 : 하나 개의 위치에 난 json_encoded 후 변수를 가지고, 그것을 디코딩하기 전 코드 아래 사용해야 : 단순히 json_decode($_POST['fields'],true);
를 사용하는 경우 $_POST['fields']
데이터가 반드시 htmlspecialchars을 사용하여 암호화되기 때문에
$objclass->fields = json_decode(html_entity_decode($_POST['fields'], ENT_QUOTES, 'UTF-8'),true);
다음은 실패 할 것이다.
그래서 은 html_entity_decode
을 구현하지 않고도 직접 작동 할 수 있습니까?
HTML 태그로 포장 된 JSON 데이터를 어떤 이유로 전송하고 있습니까? 그렇지 않으면 그것을 보낼 때 그것을 벗어나지 마십시오. 또한, 거기에가는 길에 '청소'데이터가 필요가 없습니다. –
예, 나는 HTML을 반환 yii에 확장을 만들었습니다. – DS9
들어오는 모든 요청에 대해 "htmlspecialchars"를 자동으로 실행하면 안됩니다. 특정 경우 (HTML 인쇄시)에만 데이터를 "정리"할 것이지만 다른 경우에는 그것을 망칠 것입니다. 관련성이있는 순간에 데이터를 이스케이프 처리해야합니다 (HTML로 인쇄하기 전에, SQL 쿼리 전에 등). –