2014-11-07 2 views
1

충분히 안전합니까? 클래식 ASP 또는 VBScript에 대한 경험이 없습니다.보안 기본 ASP

저는 양식 데이터를 가져 와서 데이터베이스에 연결하는 다른 고전적인 ASP 페이지로 보내는 고전적인 ASP 페이지가 있습니다.

<% 
Dim token 
token = CreateGUID() 

Function CreateGUID() 
    Dim tmpTemp 
    tmpTemp = Right(String(4,48) & Year(Now()),4) 
    tmpTemp = tmpTemp & Right(String(4,48) & Month(Now()),2) 
    tmpTemp = tmpTemp & Right(String(4,48) & Day(Now()),2) 
    tmpTemp = tmpTemp & Right(String(4,48) & Hour(Now()),2) 
    tmpTemp = tmpTemp & Right(String(4,48) & Minute(Now()),2) 
    tmpTemp = tmpTemp & Right(String(4,48) & Second(Now()),2) 
    CreateGUID = tmpTemp 
End Function 
%> 
<input type="hidden" ng-model="user.token" value="<%=token%>"> 

내가 만들 것 페이지로 폼 데이터를 게시하는 동일한 페이지에서 (즉 중요한 경우 AngularJS와와)는 AJAX 호출을 사용하고 있습니다 : 나는 양식 입력 페이지에서 내 CSRF 토큰이 사용 database.That 페이지로 연결은 다음과 같습니다

<%@ LANGUAGE="VBScript" %> 
<%If Request.ServerVariables("REQUEST_METHOD") = "POST" Then%> 

    <%If Request.Form("token") = Session("token") Then %> 
     'here I make connection to database and and insert rest of form data in database 
+2

[tag : asp.net] 태그는 무엇인가요? Classic ASP와 VBScript에 대한 이야기는 ASP.Net과 다르므로 어떤 것입니까? – Lankymart

+1

또한이 함수를'CreateGUID()'라고 부르는 것은 사실 ** ** [GUID] (http://en.wikipedia.org/wiki/Globally_unique_identifier)가 아니기 때문에 오해의 소지가 있습니다. – Lankymart

+1

접근법은 괜찮습니다.하지만 토큰을 저장하는 세션 쿠키에 의존하지 않고 고유 한 이름으로 별도의 쿠키에'token'을 저장하려고합니다. – Lankymart

답변

1

확인, 그래서 비트에 의해이 비트를 통해 가자 ...

당신은 현재 날짜와 시간의 모든 필드를 받고,하고있어 String(4,48)과 함께 Right(..., 2)을 사용하여 제로 패드합니다. 그런 다음 함께 연결합니다. 결과는 다음과 같습니다 ... 현재 날짜와 시간을 나타내는 문자열. 예를 들어 지금 당장이 프로그램을 실행하면 20141212131100이 생성됩니다.

첫째, 시간, 하드웨어 정보 및 임의의 비트에 따라 달라 지도록 신중하게 지정되는 것은 GUID입니다. 분명히, 누군가이 토큰을 본 순간, 어떻게 만들어 졌는지와 어떻게 위조 하는지를 이해하게 될 것입니다. 그들은 단지 가장 가까운 분에도 정확해야합니다! 이 토큰 생성기에는 임의성이 전혀 없습니다.

질문에 대답하려면 아니오, 안전하지 않습니다. 실제 GUID 또는 UUID를 생성 할 수있는 COM 개체에 대한 액세스 권한이없는 경우 긴 임의 번호를 대신 사용하는 방법은 무엇입니까? 그것은 완벽하지는 않겠지 만 지금 당장 가지고있는 것보다 훨씬 낫습니다.

1

VBScript에서 실제 GUID를 생성하는 방법을 보여줌으로써 조금 더 도움이 될 것이라고 생각했습니다.

Function NewGUID() 
    Dim TypeLib : Set TypeLib = CreateObject("Scriptlet.TypeLib") 
    NewGUID = CStr(TypeLib.Guid) 
End Function 

반 CSRF 토큰으로 사용하는 경우 다른 솔루션보다 안전해야합니다.