> 백엔드 개발 > C#.Net 튜토리얼 > asp.net에서 SQL 주입 공격 코드 감지

asp.net에서 SQL 주입 공격 코드 감지

巴扎黑
풀어 주다: 2016-12-20 17:09:58
원래의
1345명이 탐색했습니다.

두 가지 클래스:
(페이지 데이터 확인 클래스) PageValidate.cs는 기본적으로 보편적입니다.
코드는 다음과 같습니다.


시스템 사용,
System.Web 사용,
System.Text.RegularExpressions 사용, 일반적으로 사용되는 네임스페이스
{
///
///페이지 데이터 유효성 검사 클래스
///
공용 클래스 PageValidate
{
개인 정적 정규 표현식 RegNumber = 새로운 정규 표현식("^[0-9]+$");
개인용 정적 정규식 RegNumberSign = 새 정규식("^[+-][0-9]+$?" ); 표현식 RegDecimal = 새 정규식 ("[]?^[0-9] + [0-9] + $");
전용 정적 정규식 RegDecimalSign = 새 정규식 ("^ [+ - ] [0 -9] + [0-9] + $?[]?"); // ^ [+ - ] D + D + $?와 동일 []
개인 정적 정규식 RegEmail = new regex("^[\W-]+@\W-]+\(COM|NETWORK|ORGANIZATION|EDU|CRYPTO|TV|BIZ|INFO) $") / /W̅영문 또는 숫자로 구성된 문자열, [A-ZA-Z0-9]와 동일한 구문
전용 정적 정규식 RegCHZN = 새 정규식 ("[ u4e00- u9fa5 ]"); Public PageValidate()
{
}

# 지역 숫자 문자열 확인
///
///애플리케이션 쿼리 문자열의 키 확인 값, 숫자인지 여부 , 최대 길이 제한
///
///요청
///요청된 키 값
///최대 길이
///요청 쿼리 문자 반환 문자열
공개 static String FetchInputDigit(req HttpRequest, String inputKey, maxlen int)
{
String = retVal String.Empty;
if (inputKey = NULL && inputKey = String.Empty! )
{
retVal = req.QueryString [inputKey]
if (null == retVal)
retVal = req.Form [inputKey]
if (null = retVal!)
{
retVal = SQLTEXT( retVal, MAXLEN);
if (ISNUMBER(retVal)!)
retVal = String.Empty;
}
}
if (retVal == NULL)
retVal = String. 비어있음;
return retVal; 공개 정적 부울 ISNUMBER(String inputData)
{
Match M = RegNumber.Match( inputData)
return m.Success;
///
///여부 숫자 문자열은 서명될 수 있습니다
///
///입력 문자 String
///
Public static boolean IsNumberSign(String inputData)
{
Match M = RegNumberSign. Match(inputData);
Return m.Success;
}
///
///부동소수점 숫자인가요? {
Match M = RegDecimal.Match(inputData);
m.Success 반환
}
///
///양수 또는 음수 부호가 있는 부동 소수점 숫자인지 여부
///
///입력 string
///
Public static Boolean IsDecimalSign(String inputData)
{
Match M = RegDecimalSign.Match(inputData)
Return m.Success; #endregion
#지역 중국어 감지
///
///한자 유무 감지
///
///
///
공개 정적 boolean IsHasCHZN(String inputData)
{
Match M = RegCHZN.Match(inputData);
Return m.Success;
}
#endregion
#지역 이메일 주소
///
///양수 또는 음수 부호가 있는 부동 소수점 숫자인지
///
///문자열 입력
// /
Public static boolean ISEMAIL( String inputData)
{
Match M = RegEmail.Match(inputData);
Return m.Success;
}
#endregion
#다른 지역
///
///문자열의 최대 길이를 확인하고 지정된 길이의 문자열을 반환
///
///문자열 입력
///최대 길이
///
공개 정적 문자열 SQLTEXT(String SQLInput, int max length)
{
IF (SQLInput = NULL && SQLInput = String.Empty)!
{ SQLInput of
= sqlInput.Trim();
If (sqlInput.Length>최대 길이) //최대 길이에 따라 문자열 자르기
SQLInput = sqlInput.Substring(0, maximum length )
}
반환된 SQLInput
}
///
///문자열 인코딩
///
///
///
공개 정적 문자열 HTMLEncode(String inputData)
{
Return HttpUtility.HtmlEncode(inputData)
}
///
///인코딩 문자열을 표시하도록 레이블 설정
///
///
///
public static void SetLabel(label lbl, String txtInput)
{
lbl.Text = HTMLEncode(txtInput)
}
Public static void SetLabel(LBL label, object inputObj)
{
SetLabel(LBL, inputObj.ToString())
}
//문자열 정리
public static string inputText(String inputString, int max length)
{
StringBuilder retVal = new StringBuilder()
// 비어 있는지 확인
if ((inputString = NULL) && (inputString = String .Empty)! )
{
inputString = inputString.Trim();
// 길이 확인
if (inputString.Length>max length)
inputString = inputString.Substring(0, 최대 길이);
//위험 문자 교체
for (int i = 0;i{
switch(inputString[I])
{
case'":
retVal.Append(""");
break("<")
Break
Case '>':
retVal.Append( ">");
중단;
기본값:
retVal.Append(inputString[I])
중단;
}
retVal.Replace(" '", ""); //작은따옴표 바꾸기
}
Return retVal.ToString();
}
///
///HTML 코드로 변환
/ //
///String
///String
공개 정적 문자열 인코딩(String str)
{
str = str.Replace("&", "&")
str = str.Replace("'", "'");
str = str.Replace(""", """)
str = str.Replace("", "") ;
str = str.Replace("<", "<" )
str = str.Replace(">", ">"); "n", "
");
return to str;}
///
///HTML을 일반 텍스트로 구문 분석
///
///String
///String
공개 정적 문자열 디코딩(String str)
{
str = str.Replace("
", "n")
str = str.Replace (">", ">");
str = str.Replace("<", "<")
str = str.Replace("", ""); > str = str.Replace(""", """ ; 웹사이트의 루트 Trojan 아래에 이름을 입력하면 됩니다. (다른 기능은 직접 추가 가능)



관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿