对表单这一块不太熟,有以下几个疑惑?
1.诸如在登录验证用户名和密码的时候,二者都是同样的方式提交到post到服务器吗?
2.get方式会把参数暴露到链接尾部(实际上会通过把key键值加密然后后端再解密校验)?
3.现在的表单常规处理方式是什么样的?
4.密码校验的时候,诸如在比对密码要求密码中不能是3位同样的连续数字?这个密码会存在本地?还是服务器端来校验
大家讲道理2017-04-18 10:58:47
로그인 사용자 이름 확인은 일반적으로 서버에 함께 게시됩니다.
get 메소드는 링크 끝 부분에 매개변수를 노출하지만 브라우저 자체에는 암호화가 없습니다. 암호화하는 경우 직접 조정해야 합니다.
유효한지, 비어 있지 않은지 등 일부 양식 값의 경우 사용자 경험을 개선하기 위해 제출하기 전에 메시지를 표시해야 합니다.
다 해보세요. 프론트엔드는 사용자 경험을 위한 것이고(요청하기 전에 문제를 알게 될 것입니다), 백엔드는 보안을 위한 것입니다.
엔터프라이즈 수준 서비스의 경우 일반 텍스트 대신 https를 사용하세요.
ringa_lee2017-04-18 10:58:47
사용자 이름은 3자리 이상이어야 하며, 비밀번호는 6~32자리여야 하며, 인증 코드는 4자리여야 합니다.
1. 3보다 크면 비밀번호 길이는 6~32이고 인증 코드 길이는 4입니다.
2. 매개변수를 서버에 게시합니다.
서버가 매개변수를 수신합니다
4. 길이가 4인지 확인하고, 확인 코드 길이가 비정상인지 확인합니다
5. 세션에서 코드를 가져와서 매개변수 코드와 일치하는지 확인합니다. . 반환 오류
6. 사용자 이름 길이와 비밀번호 길이가 잘못된 경우 반환 오류
7. 비밀번호 암호화를 수정해야 하는 경우
8. 데이터베이스, 그렇다면 사용자가 반환되고, 그렇지 않으면 0이 반환됩니다
PHP中文网2017-04-18 10:58:47
GET은 URL에 데이터를 직접 표시합니다.
POST는 "진실을 숨기고" URL을 볼 수 없지만 브라우저 개발자 도구를 사용하면 볼 수 있습니다. "해커" "패킷을 캡처하면 데이터 전송 중에 일반 텍스트 데이터를 얻을 수도 있습니다. 콘텐츠를 변조/탈취한 후 서버에 전달할 수도 있고, 직접 서버인 것처럼 가장하여 잘못된 정보를 반환할 수도 있습니다.
HTTPS를 사용하는 경우 전송 시 데이터가 먼저 암호화되므로 비교적 안전합니다.
매개변수 검증은 프런트엔드와 백엔드 모두에서 수행해야 합니다. 프런트엔드에서 JS 검증을 쉽게 우회할 수 있기 때문입니다.