00001: Friend Class CrossSiteScriptingValidation
00002:     Private Shared Function IsAtoZ(ByVal c As Char) As Boolean
00003:         Return (((c >= "a"c) AndAlso (c <= "z"c)) OrElse ((c >= "A"c) AndAlso (c <= "Z"c)))
00004:     End Function
00005: 
00006:     Friend Shared Function IsDangerousString(ByVal s As String, <Out> ByRef matchIndex As Integer) As Boolean
00007:         matchIndex = 0
00008:         Dim startIndex As Integer = 0
00009:         Do While True
00010:             Dim num2 As Integer = s.IndexOfAny(CrossSiteScriptingValidation.startingChars, startIndex)
00011:             If (num2 < 0) Then
00012:                 Return False
00013:             End If
00014:             If (num2 = (s.Length - 1)) Then
00015:                 Return False
00016:             End If
00017:             matchIndex = num2
00018:             Dim ch As Char = s.Chars(num2)
00019:             If (ch <> "&"c) Then
00020:                 If ((ch = "<"c) AndAlso ((CrossSiteScriptingValidation.IsAtoZ(s.Chars((num2 + 1))) OrElse (s.Chars((num2 + 1)) = "!"c)) OrElse (s.Chars((num2 + 1)) = "/"c))) Then
00021:                     Return True
00022:                 End If
00023:             ElseIf (s.Chars((num2 + 1)) = "#"c) Then
00024:                 Return True
00025:             End If
00026:             startIndex = (num2 + 1)
00027:         Loop
00028:     End Function
00029: 
00030:     Friend Shared Function IsDangerousUrl(ByVal s As String) As Boolean
00031:         If String.IsNullOrEmpty(s) Then
00032:             Return False
00033:         End If
00034:         s = s.Trim
00035:         Dim length As Integer = s.Length
00036:         If (((((length > 4) AndAlso ((s.Chars(0) = "h"c) OrElse (s.Chars(0) = "H"c))) AndAlso ((s.Chars(1) = "t"c) OrElse (s.Chars(1) = "T"c))) AndAlso (((s.Chars(2) = "t"c) OrElse (s.Chars(2) = "T"c)) AndAlso ((s.Chars(3) = "p"c) OrElse (s.Chars(3) = "P"c)))) AndAlso ((s.Chars(4) = ":"c) OrElse (((length > 5) AndAlso ((s.Chars(4) = "s"c) OrElse (s.Chars(4) = "S"c))) AndAlso (s.Chars(5) = ":"c)))) Then
00037:             Return False
00038:         End If
00039:         If (s.IndexOf(":"c) = -1) Then
00040:             Return False
00041:         End If
00042:         Return True
00043:     End Function
00044: 
00045:     Friend Shared Function IsValidJavascriptId(ByVal id As String) As Boolean
00046:         If Not String.IsNullOrEmpty(id) Then
00047:             Return CodeGenerator.IsValidLanguageIndependentIdentifier(id)
00048:         End If
00049:         Return True
00050:     End Function
00051: 
00052:     Private Shared startingChars As Char() = New Char() { "<"c, "&"c }
00053: End Class


Comments ( )
<00>  <01>  <02>  <03>  <04>  <05>  <06>  <07>  <08>  <09>  <10>  <11>  <12>  <13>  <14>  <15>  <16>  <17>  <18>  <19>  <20>  <21>  <22>  <23
Link to this page: //www.vb-net.com/asp2/32/1.htm
<SITEMAP>  <MVC>  <ASP>  <NET>  <DATA>  <KIOSK>  <FLEX>  <SQL>  <NOTES>  <LINUX>  <MONO>  <FREEWARE>  <DOCS>  <ENG>  <CHAT ME>  <ABOUT ME>  < THANKS ME>