
사용자 입력 검증, 인젝션, 유니코드 처리를 QA 및 보안 테스트하기 위한 악성 및 엣지 케이스 입력 문자열(blns.txt/blns.json)의 선별된 목록입니다.
Big List of Naughty Strings는 사용자 입력 데이터로 사용될 때 문제를 일으킬 가능성이 높은 문자열들의 진화하는 목록입니다. 이는 자동화 및 수동 QA 테스트 모두를 돕기 위한 용도로, QA 엔지니어가 술집에 들어갈 때와 같은 상황에서 유용합니다.
막대한 양의 자동화 테스트를 갖춘 수십억 달러 규모의 기업조차도 모든 잘못된 입력을 찾아낼 수는 없습니다. 예를 들어, Twitter에서 제로 폭 공백(U+200B)을 트윗하려고 할 때 어떤 일이 발생하는지 보십시오:
이것은 악의적인 오류가 아니며, 일반 사용자가 이상한 유니코드를 트윗하는 것도 아니지만, 예상치 못한 입력에 대한 "내부 서버 오류"는 결코 사용자에게 긍정적인 경험이 아니며, 실제로 더 깊은 문자열 검증 문제의 증상일 수 있습니다. Big List of Naughty Strings는 그러한 문제를 드러내는 데 도움을 주기 위한 것입니다.
blns.txt는 줄바꿈으로 구분된 문자열과 #으로 시작하는 주석으로 구성되어 있습니다. 주석은 문자열을 섹션으로 나누어 수동으로 읽고 입력 양식에 복사/붙여넣기하기 쉽게 해줍니다. 문자열에 프로그래밍 방식으로 접근하려는 사람들을 위해 모든 주석이 제거된 배열을 포함하는 blns.json 파일이 제공됩니다(scripts 폴더에는 blns.json을 생성하는 데 사용되는 Python 스크립트가 포함되어 있습니다).
더 많은 문자열이나 추가 섹션을 추가하려면 자유롭게 풀 리퀘스트를 보내주십시오. 그러나 매우 긴 문자열(255자 이상)이 포함된 풀 리퀘스트는 보내지 마십시오. 목록을 보기가 훨씬 어려워지기 때문입니다.
마찬가지로, 파일의 수동 사용성을 저해하는 풀 리퀘스트는 보내지 마십시오. 여기에는 파일이 바이러스 백신 스캐너에 의해 플래그 지정될 수 있게 하는 EICAR 테스트 문자열과 blns.txt의 인코딩을 변경하는 파일이 포함됩니다. 또한 널 문자(U+0000) 문자열은 GitHub에서 파일 형식을 바이너리로 변경하여 풀 리퀘스트에서 읽을 수 없게 만들기 때문에 보내지 마십시오. 마지막으로, 문자열을 추가하거나 제거할 때 풀 리퀘스트를 수행할 때 모든 파일을 업데이트해 주십시오.
Big List of Naughty Strings는 귀하가 소유하고 관리하는 소프트웨어에 사용되도록 의도되었습니다. 일부 Naughty Strings는 보안 취약점을 나타낼 수 있으며, 결과적으로 그러한 문자열을 타사 소프트웨어와 함께 사용하는 것은 범죄가 될 수 있습니다. 유지 관리자는 목록 사용으로 인해 발생하는 부정적인 행위에 대해 책임지지 않습니다.
또한, Big List of Naughty Strings는 귀하의 서비스에 대한 공식적인 보안/침투 테스트를 완전히 포괄하는 대체물이 아닙니다.
Big List of Naughty Strings의 다양한 구현이 여러 패키지 관리자에 등록되어 있습니다. 이들은 외부 당사자에 의해 유지 관리되지만, 여기에서 찾을 수 있습니다:
다른 것들을 나열하려면 PR을 열어주십시오.
Max Woolf (@minimaxir)
MIT