너무 적은 수의 유효성 검사 및 위생 루틴을 갖는 것이 좋습니다. 중복성을 추가하여 시스템의 안정성을 유지합니다. 이더는 그것의 취약성 또는 그것의 부울, 부울이 아닌 부울이다. 내가 코드를 감사하고있을 때 나는 불완전한 보안 조치를 본다. 나는 그것을 붉은 깃발로 생각하고 더 깊게 파고 갈 것을 장려한다. 이 프로그래머는 편집증을 앓고 있으며 항상 그렇지는 않지만 취약성의 본질을 이해하지 못하는 것입니다.
다른 문제가 있습니다. htmlentities()가 xss를 항상 멈추게하지는 않습니다. 예를 들어, 출력이 <script></script>
태그 또는 심지어 href에 해당하는 경우 어떻게됩니까? mysql_real_escape_string은 항상 SQL injection을 멈추지 않는다. 무엇이 있다면 : 'select * from user where id='.mysql_real_escape_string($_GET[id]);
. preg_match 은이 문제를 해결할 수 있지만이 경우에는 intval()이 훨씬 더 좋은 기능입니다.
나는 아주 준비된 성명서 팬입니다. 이것은 기본적으로 안전하기 때문에 준비된 구문이 데이터를 손상시킬 수 있기 때문에 mysql_real_escape_string()에 변수를 전달하기 때문에 이것은 훌륭한 접근 방법이라고 생각합니다. 초보자가 모든 검증 루틴을 제거함으로써이 문제를 해결하는 것을 보았습니다. 따라서 중복으로 인해 취약점이 발생합니다. 원인과 결과.
웹 응용 프로그램 방화벽 (WAF)은 계층 이의 보안을 향상시키는 방법의 훌륭한 예입니다. WAF는 정규 표현식에 크게 의존합니다. 그들은 더 큰 그림을보고 불쾌한 입력을 막으려 고 노력합니다. 이것들은 절대로 총알이 아니며 사용하는 유일한 보안 수단이되어서는 안되지만 악용을 막을 수 있으며 프로덕션 시스템에 mod_security를 설치하는 것이 좋습니다.
데이터의 용도에 따라 다릅니다. – Gumbo
htmlentities()는 출력 * 값을 살균하는 데 사용됩니다 .-) –