웹 입력에 허용 된 문자 허용 목록을 구현하기 위해 C# 정규식을 사용하여 몇 가지 문제가 발생했습니다. SQL 주입 및 XSS 공격을 피하려고합니다. 허용되는 문자의 화이트리스트가 갈 길이 란 것을 읽었습니다.C# regex 's를 사용하여 화이트리스트를 사용하여 이름 (사람 및 회사)을 거부하는 방법은 무엇입니까?
입력 내용은 사람 이름과 회사 이름입니다.
문제의 일부
은 다음과 같습니다 앰퍼샌드가회사 이름. "Jim & 아들들"처럼. 앰퍼샌드는 중요하지만 위험합니다.
문자 세트를 사용하여 이름을 입력하는 이름 (예 : 아시아 고객이 있음)의 유니 코드 문자. 나는이 모든 것들을 화이트리스트에 올릴 필요가있다.
- 회사 이름에는 "S/A"및 "S \ A"와 같은 모든 종류의 슬래시가있을 수 있습니다. 그 사람들은 위험한가요?
나는 이미 DB에있는 모든 데이터를보고 (새로운 사용자가 입력 한) 거의 모든 문자를 허용하려고합니다.
이러한 (및 기타) 문제를 처리 할 수있는 좋은 화이트리스트에 대한 제안 사항이 있습니까?
참고 : 이것은 레거시 시스템이므로 모든 코드를 제어 할 수 없습니다. 우선 나쁜 데이터가 시스템에 침투하는 것을 막아서 공격 수를 줄이기를 희망했습니다.
[이를 EnableClientScript = "거짓" SO 스레드] (http://stackoverflow.com/questions/188870/how-to-use-c-to-sanitize-input-on-an-html-page) 비슷한 것 같습니다 - 도움이 될 수도 있습니다. –