이틀 전, 누군가 친구의 홈페이지에 플래시 게임 점수를 제출하기 위해 PHP 인젝션을 사용했는데, 나중에 원인을 찾아보니 수치 판단을 하지 않는 매개변수에 의해 발생했다는 사실을 알게 되었습니다.
원래 게임 점수 저장은 game.php?ac=save&fgid=1 형식으로 구현됩니다. fgid는 필터링 없이 PHP 웹페이지에서 직접 호출됩니다. 많은 사람들이 일부 불법적인 작업을 수행하기 위해 fgid=1 뒤에 문자(fgid=1a)를 추가하는 것을 사용합니다.
gamlist 테이블에 fgid가 102인 게임이 있다고 가정합니다
fgid='102′;
인 게임 목록에서 gname을 선택하세요.
fgid='102a';
인 게임 목록에서 gname을 선택하세요.
이런 식으로 많은 사람들에게 기회를 제공하는 게임명 gname을 성공적으로 찾을 수 있습니다
주요 매개변수를 필터링하는 것이 좋습니다. 디지털 정규 필터링 등
ID가 숫자인지 확인하는 온라인 방법
이 두 방법의 차이점은 is_numeric은 소수도 숫자로 처리하는 반면, 이전 정규식은 소수점을 문자로 처리한다는 것입니다.
일반적으로 사용되는 몇 가지 정규 작업을 첨부했습니다.
인증번호: ^[0-9]*$
n자리 숫자 확인: ^d{n}$
n개 이상의 숫자를 확인하세요: ^d{n,}$
m-n 자리 숫자 확인: ^d{m,n}$
0으로 시작하고 0이 아닌 숫자 확인: ^(0|[1-9][0-9]*)$
소수점 이하 두 자리로 양의 실수를 확인하세요: ^[0-9] (.[0-9]{2})?$
소수점 이하 1~3자리의 양수 실수 확인: ^[0-9] (.[0-9]{1,3})?$
0이 아닌 양의 정수 확인: ^?[1-9][0-9]*$
0이 아닌 음의 정수 확인: ^-[1-9][0-9]*$
음수가 아닌 정수(양의 정수 0) 확인 ^d $
양수가 아닌 정수(음의 정수 0) 확인 ^((-d )|(0 ))$
길이가 3인 문자 확인: ^.{3}$
영문 26자로 구성된 문자열 확인: ^[A-Za-z] $
영문 대문자 26자로 구성된 문자열 확인: ^[A-Z] $
영문 소문자 26자로 구성된 문자열 확인: ^[a-z] $
숫자와 영문 26자로 구성된 문자열 확인: ^[A-Za-z0-9] $
숫자, 영문 26자, 밑줄로 구성된 문자열 확인: ^w $
사용자 비밀번호 확인: ^[a-zA-Z]w{5,17}$ 올바른 형식은 문자로 시작하고 길이는 6-18이며 문자, 숫자 및 밑줄만 포함할 수 있습니다.
^%&',;=?$'와 같은 문자가 포함되어 있는지 확인하세요: [^%&',;=?$x22]
한자 확인: ^[u4e00-u9fa5],{0,}$
이메일 주소 확인: ^w [- .]w )*@w ([-.]w )*.w ([-.]w )*$
인터넷 URL 확인: ^http://([w-] .) [w-] (/[w-./?%&=]*)?$ ^[a-zA-z] ://(w ( -w )*)(.(w (-w )*))*(?S*)?$
확인 전화번호: ^((d{3,4})|d{3,4}-)?d{7,8}$: – 올바른 형식은 다음과 같습니다: XXXX-XXXXXXX, XXXX-XXXXXXXXX, XXX-XXXXXXX, XXX -XXXXXXXX, XXXXXXX, XXXXXXXX.
ID 번호 확인(15 또는 18자리): ^d{15}|d{}18$
1년의 12개월을 확인하세요. ^(0?[1-9]|1[0-2])$ 올바른 형식은 다음과 같습니다: "01"-"09" 및 "1" "12"
한 달이 31일인지 확인하세요. ^((0?[1-9])|((1|2)[0-9])|30|31)$ 올바른 형식은 01, 09 및 1, 31입니다. .
정수: ^-?d $
음수가 아닌 부동 소수점 수(양수 부동 소수점 수 0): ^d (.d )?$
양의 부동 소수점 숫자 ^(([0-9] .[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]* . [0-9] )|([0-9]*[1-9][0-9]*))$
양수가 아닌 부동 소수점 수(음수 부동 소수점 수 0) ^((-d (.d )?)|(0 (.0 )?))$
음의 부동 소수점 숫자 ^(-(([0-9] .[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9 ] *.[0-9] )|([0-9]*[1-9][0-9]*)))$
부동 소수점 숫자 ^(-?d )(.d )?