Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- sm5 임프 hid 교체 팁
- winsdows 11 snmpb
- sm5 임프 전조등 교체 팁
- sm5 임프 전조등 교환 팁
- sm5 전조등 교체 팁
- sm5 임프 유리모터 수리
- Visual Studio
- IE8
- sm5 hid 벌브 교체 팁
- windows 11 실행이 안될 때
- sm5 정차 시 떨림
- Visual Studio 2015
- Tissot
- sm5 헤드라이트 조수석
- Chrome
- sm5 창문 고장
- sm5 임프 에어컨 정차 떨림
- vmware 에러
- windows 11 호환성
- sm5 아이들 학습
- 크롬
- windows 11 실행 문제
- sm5 쓰로틀 바디 청소
- wsl2 설치
- sm5 임프 창문 수리
- tissot 시계 as
- sm5 정차 시 rpm 낮아짐
- sm5 임프 헤드라이트 교체 팁
- sm5 임프 유리모터 교체
- windows 11 호환성 문제 해결사
Archives
- Today
- Total
임베디드아로마
SQL Injection 방지 / HTML Tag 방지처리 (basepage) 본문
basepage내에 해당 코드 삽입
#region :Page_Init Event
/// <summary>
/// 서비스명 : Page_Init 이벤트 메서드.
/// 서비스내용 : 페이지로딩시 초기화 작업을 수행하는 이벤트 메서드 입니다.
/// </summary>
private void Page_Init(object sender, System.EventArgs e)
{
_pageUtility = new AppPageUtility(this);
_typeUtility = new AppTypeUtility();
_log = new AppLog();
_bwm = new AppBWM();
_portalUser = new AppPortalUser();
////////////////////////////////////////////////////////////
///QueryString 과 form 내에 불법적인코드가 삽입되었는지 확인
////////////////////////////////////////////////////////////
this.CheckQueryString(Request);
}
#endregion
#region :SQL Injection 방지 / HTML Tag 방지처리
/// <summary>
/// 서비스명 : CheckQueryString 메서드.
/// 서비스내용 : QuertString 을 체크한 후 잘못되었으면 페이지를 표시하지 않습니다.
/// </summary>
/// <param name="QueryString">QueryString 컬렉션입니다.</param>
//public void CheckQueryString(System.Collections.Specialized.NameValueCollection queryString)
protected void CheckQueryString(HttpRequest poRequest)
{
System.Collections.Specialized.NameValueCollection queryString = poRequest.QueryString;
System.Collections.Specialized.NameValueCollection formString = poRequest.Form;
bool bCheck = true;
// string sMessage = "";
string[] allRequest;
// QueryString 체크
// HTTP 쿼리 문자열 변수의 컬렉션을 가져옵니다.
allRequest = queryString.AllKeys;
for (int i=0; i < allRequest.Length; i++)
{
if (!this.CheckCharacter(queryString.GetValues(allRequest[i])))
{
bCheck = false;
break;
}
}
if (!bCheck)
{
HttpContext.Current.Response.End();
}
bCheck = true;
// Form 체크
// HTTP 요청의 컨텐트 형식이 application/x-www-form-urlencoded 또는 multipart/form-data인 경우에만 채워집니다.
allRequest = formString.AllKeys;
for (int i=0; i < allRequest.Length; i++)
{
if (!this.CheckCharacter(formString.GetValues(allRequest[i])))
{
bCheck = false;
break;
}
}
if (!bCheck)
{
HttpContext.Current.Response.End();
}
}
protected bool CheckCharacter(string[] psCheck)
{
foreach(string sCheck in psCheck)
{
if (!this.CheckCharacter(sCheck)) return false;
}
return true;
}
/// <summary>
///
/// </summary>
/// <param name="psCheck"></param>
/// <returns></returns>
protected bool CheckCharacter(string psCheck)
{
string[] sCheckCharacter = new string[]{"<","'","--","/*","*/"};
foreach(string sTemp in sCheckCharacter)
{
int iTemp = -1;
string sCheck = psCheck;
iTemp = sCheck.IndexOf(sTemp.ToUpper());
if(iTemp != -1)
{
string sMsg ="[ "+ sTemp + " ]는 해킹방지를 위하여 허용되지 않는 문자입니다.\n" ;
sMsg +=" 사용하신 문자가[']이신 경우는 데스크탑 키보드기준으로 왼쪽 Tab 키 위에 있는[`]로 대체 사용가능합니다";
PageUtility.AlertMessage(sMsg,true,false,"history.back();");
return false;
}
}
return true;
}
#endregion
'Experience' 카테고리의 다른 글
UltraVnc 에서 파일전송창(File Transfer)이 뜨지않을때 (0) | 2017.04.24 |
---|---|
IE8에서 스마트클라이언트 동작에 관해 (0) | 2017.04.24 |
Windows7의 IIS7 이상에서 ASP 활성화 (0) | 2017.04.23 |
/usr/bin/ld: cannot find -lperl (0) | 2017.04.23 |
ubuntu 10.04 tftp 설정 (tftpd-hpa) (0) | 2017.04.23 |
Comments