> 웹 프론트엔드 > JS 튜토리얼 > PHP is_numberic function_javascript 기술로 인한 SQL 주입 취약점

PHP is_numberic function_javascript 기술로 인한 SQL 주입 취약점

WBOY
풀어 주다: 2016-05-16 16:55:58
원래의
1361명이 탐색했습니다.

1. is_numberic 함수 소개
is_numberic 함수는 일부 국내 CMS 프로그램에서 사용됩니다. 먼저 이 함수의 구조를 살펴보겠습니다
bool is_numeric (mixed $var)
var가 숫자 또는 숫자 문자열이면 TRUE를 반환하고, 그렇지 않으면 FALSE를 반환합니다.
2. 이 함수는 안전한가요?
다음으로 이 함수가 안전한지 예시를 살펴보겠습니다.

코드 복사 코드는 다음과 같습니다.
$s = is_numeric($_GET['s'] )?$ _GET['s']:0;
$sql="insert into test(type)values($s);" //values('$s'가 아니라 값($s)입니다. )
mysql_query ($sql);

위 조각 프로그램은 매개변수 s가 숫자인지 여부를 확인하는 것입니다. 숫자이면 숫자를 반환하고, 그렇지 않으면 0을 반환합니다. 그런 다음 쿼리를 위해 데이터베이스로 가져옵니다. (이런 식으로는 sql 문을 구성할 수 없습니다)
s 매개변수의 값으로 '1 또는 1'을 16진수 0x31206f722031로 변환합니다
프로그램 실행 후 아래와 같이 데이터베이스를 쿼리합니다.
PHP is_numberic function_javascript 기술로 인한 SQL 주입 취약점
이 테이블의 필드를 다시 쿼리하고 필터링하지 않고 다른 SQL 문을 가져오면 두 번의 삽입이 발생합니다.
3. 시도하지 마세요. 이 기능을 사용하려면 표준 SQL 문을 사용하고 조건에 작은따옴표를 추가하여 16진수 0x31206f722031이 데이터베이스에 표시되도록 하는 것이 좋습니다. 1도 1도 없을 것입니다.
관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿