원문 출처 : http://proglamor.tistory.com/category/Security/CSRF
CSRF 처리 관련 ASP 함수 이다.
CSRF 처리 방법은 의외로 간단하게 처리할 수 있다.
입력폼에서 특정 문자조합의 토큰을 생성하여, 세션에 저장하며, 이를 처리 페이지로 넘겨준다.
넘겨받은 토큰과 세션을 비교하여 동일할때만 로직을 수행하게 하면 된다.
## 함수
function CSRP_TokenCreate()
set_KeyTable = "A0N1B2A3C4N5D6U7E8M9F0LGOHTITJOKLMNOPQRSTUVWXYZ"
set_Token = ""
randomize
for cnt = 1 to 20
get_KeyPos = int((49 - 1 + 1) * Rnd + 1)
set_Token = set_Token & mid(set_KeyTable, get_KeyPos, 1)
next
session("CSRP_Token") = set_Token
CSRP_TokenCreate = set_Token
end function
function CSRP_TokenConfirm( get_Token )
if session("CSRP_Token") = get_Token then
CSRP_TokenConfirm = True
else
CSRP_TokenConfirm = False
end if
end function
## From.ASP
<%
get_Token = CSRP_TokenCreate()
%>
<form name="input_form" action="Proc.ASP">
<input type="hidden" name="Token" value="<%=get_Token%>">
</form>
## Proc.ASP
<%
req_Token = request("Token")
if not CSRP_TokenConfirm(req_Token) then
response.write "잘못된 접근 입니다."
response.end
end if
%>