웹 응용 프로그램의 Javascript/HTML/PHP 가입 양식을 만들고 있습니다. 나는 그것을 가능한 한 안전하게 만들고 싶고, PHP에 널 바이트 주입을 읽고 있었다. 나는 이런 일을 막기 위해 % & £ # @ ?!와 같은 특수 문자 (null 바이트 문자)를 허용하지 않아야한다고 생각합니다. 사용자가 가입 할 때 비밀번호 등으로 선택되지 않습니까?HTML/자바 스크립트/PHP 입력란에서 null 바이트 삽입을 방지하는 올바른 방법
사용자는 두 개의 HTML 텍스트 상자에 사용자 이름과 암호를 입력하고 사용자 이름이 이미 사용되었는지 확인하는 사용자 이름 텍스트 상자의 onBlur 이벤트와 함께 데이터베이스 (PHP 스크립트 사용)를 검사하는 사용자 이름을 가지고 있습니다. 데이터베이스에 저장하고, "등록"버튼을 사용하지 않으면 사용자에게이를 경고합니다.
비밀번호 입력란과 비슷한 기능을 수행하고 싶습니다. 사용자가 특수 문자 (예 : "mypassword!")와 함께 비밀번호를 입력하면 "가입"버튼을 비활성화하고 비밀번호에 문자와 숫자 만 포함시켜야한다고 알려줍니다.
null-byte injection을 방지하는 올바른 방법입니까? 또는 PHP 파일 내부에서 일종의 검사를 통해 암호에 특수 문자를 허용하는 것이 안전합니까? 미리 도움을 주셔서 감사합니다!
그래서 암호를 약하게 만들고 나중에 추측/해킹하기가 쉽습니다. 되도록 UGLY 및 COMPLICATED 인 암호를 권장해야합니다. –
'null-byte injection을 방지하는 올바른 방법입니까? no - _any_ 클라이언트 측 코드가 암시 적으로 여러분의 제어에 없습니다. 사용자는 자신의 브라우저에서 JS를 사용하지 않도록 설정하여 간단히 무시할 수 있습니다. 클라이언트 쪽 유효성 검사에만 의존해서는 안되며, 서버를 보호 할 수는 없지만 사용자 경험을 향상시키는 데에만 도움이됩니다. – vlaz
패스워드에서 null-byte-injection을 방지하는 최선의 방법은 패스워드 _hash()를 사용하는 것입니다. –