는 문자열에 다음과 같은 대체를 수행 htmlspecialchars()라는 기능이 있습니다 :왜이 5 (6?) 문자가 "안전하지 않은"HTML 문자로 간주됩니까?
"
(큰 따옴표)로 변환된다 (앰퍼샌드)"
'
로 변환됩니다&
- (작은 따옴표)는
'
으로 변환됩니다 (ENT_QUOTES 플래그가 설정된 경우에만) <
(보다 작음)을<
>
(이상은)이 5 개 특정 문자가 안전하지 않은 HTML 문자임을 분명히,이 땅에 이루어집니다>
&
로 변환됩니다.
마지막 두 개가 안전하지 않은 것으로 이해할 수 있습니다. 간단히 "에코"된 경우 <script>
과 같은 잠재적 인 자바 스크립트를 비롯하여 임의의/위험한 HTML이 배달 될 수 있습니다.
질문 1. 처음 세 문자 (앰퍼샌드, 큰 따옴표, 작은 따옴표)도 '안전하지 않은'것으로 간주되는 이유는 무엇입니까?
또한, I는 인코딩/디코딩 HTML 엔티티에 대해 인 this library called "he" on GitHub (by Mathias Bynens) 우연히. 저기, 내가 찾은 다음.
[...] HTML 내용의 사용 (&, <,>, ", ', 그리고`)가 인코딩됩니다에 대한 안전하지 않은 문자가 [...]
(source)
질문 2. 백틱 또 다른 안전하지 않은 HTML 문자를 고려에 대한 좋은 이유가 있습니까? 예,이 위에서 언급 한 PHP의 기능이 오래된 것을 의미하는 경우?
0 그 5/6 문자가 위에서 언급과 함께,질문 3. '안전하지 않은'고려되어야 다른 문자가 있습니다
마지막으로,이 모든 질문을 구걸?
이것은 실제로 질문에 대답하지 않지만 # 3을 다소 말합니다. XSS 취약점 등을 필터링 할 때 블랙리스트가 아닌 허용 목록을 사용하십시오. HTML을 허용해야한다면 매우 제한된 하위 집합이됩니다. 가능한 모든 잘못된 항목을 필터링하려고 시도하는 것은 좋은 항목 만 허용하는 것보다 훨씬 어렵습니다. – CollinD
@CollinD 감사합니다 - 나는 그 5 문자 (6 자)를 단순히 이스케이프하는 것이 취약점을 예방하는 최선의 방법이 아니라는 것에 동의합니다. 내 질문은 정확히 5 문자가 다른 문자보다 "중요"하다고 여겨지는 이유와, 백틱과 같이 같은 봉지에 넣어야하는 문자가있는 경우에 관한 것입니다. – Hamsterrific
이제 누구나이 질문에 무엇이 잘못 됐는지 짐작할 수 있습니까? 나는 설명없이 무작위 downvote를 받았다. 나는 그 질문을 개선/고치기를 기대하지만, 논평없이 나는 그것을 할 수 없다. 감사. – Hamsterrific