none
C# - Prevenindo SQL Injection RRS feed

  • Pergunta

  • Galera,

    Tenho um arquivo include, em ASP, que uso para detectar SQL Injection na página. Gostaria de convertê-lo para um UserControl usando C#.

    Alguém pode me ajudar? Segue o código ASP:

     

    	<%
    Dim objRegExpr, blnSQLInjection, strSQLInjectionType
    blnSQLInjection = False
    strSQLInjectionType = ""
    Set objRegExpr = New RegExp
    objRegExpr.Global = True
    objRegExpr.IgnoreCase = True
    objRegExpr.Pattern = "([\s]*(insert|update|cast|exec|set|upload|delete|drop|select|create|information_schema)[\s])|(""|'|;)"
    For Each obj In Request.Form
    If objRegExpr.Test(Request.Form(obj)) then
    blnSQLInjection = True
    strSQLInjectionType = "Form"
    Exit For
    End If
    Next
    For Each obj In Request.QueryString
    If objRegExpr.Test(Request.QueryString(obj)) Then
    blnSQLInjection = True
    strSQLInjectionType = "QueryString"
    Exit For
    End If
    Next
    Set objRegExpr = Nothing
    '===Response.Write("blnSQLInjection=[" & blnSQLInjection & "]<br>")
    If blnSQLInjection then
    %>

    <style type="text/css">
    body
    {
    margin-left: 0px;
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
    background-color: #ffffff;
    margin:0;
    padding:0;
    height:100%;
    }
    body,p,div,font,span {font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 12px; color: #121212;}
    .alert {color:#ff0000;}
    a.link {text-decoration:none;}
    a.active {text-decoration:none;}
    a.visited {text-decoration:none;}
    a.hover {text-decoration:none;}
    .sqlinjection {border:1px solid #ddd; border-width:0 0 1px; background:#ffff90; font-size:12px; line-height:1.25; text-align:center; color:#2f2f2f;}
    .sqlinjection .sqlinjection-inner {width: 1000px; margin: 0 auto; padding: 12px 0 12px; background: #ffff90 no-repeat 20px 50%;}
    .sqlinjection p { margin:0; }
    </style>
    <div class="sqlinjection">
    <div class="sqlinjection-inner">
    <% If varLang ="en-US" or varLang ="en-UK" then %>
    <p><strong>The word or character <span class="alert"><%If strSQLInjectionType = "Form" then Response.Write(Request.Form(obj)) Else Response.Write(Request.QueryString(obj)) End If%></span> is invalid to field <span class="alert"><%=obj%></span> please substitute or remove it.<br /><a href='javascript:history.back();'>CLICK HERE TO RETURN</a></strong></p>
    <% ElseIf varLang ="es-ES" then %>
    <p><strong>La palabra o lo caracter <span class="alert"><%If strSQLInjectionType = "Form" then Response.Write(Request.Form(obj)) Else Response.Write(Request.QueryString(obj)) End If%></span> es incapacitado para el campo <span class="alert"><%=obj%></span> favor sustitúyalo o retírelo.<br /><a href='javascript:history.back();'>CLIC AQUÍ PARA REGRESAR</a></strong></p>
    <% Else %>
    <p><strong>A palavra ou caracter <span class="alert"><%If strSQLInjectionType = "Form" then Response.Write(Request.Form(obj)) Else Response.Write(Request.QueryString(obj)) End If%></span> é invalida(o) para o campo <span class="alert"><%=obj%></span> favor substituí-lo ou retirá-lo.<br /><a href='javascript:history.back();'>CLIQUE AQUI PARA VOLTAR</a></strong></p>
    <% End If %>
    </div>
    </div>
    <%
    Response.End
    End If
    %>

     


    Techvia - Ramon Rocha www.techvia.com.br - solucoes@techvia.com.br MSN: techvia@hotmail.com - Skype: techvia
    terça-feira, 28 de dezembro de 2010 20:50

Todas as Respostas

  • Fiz uma conversão, porém está dando erro nesta linha:

    Regex objRegExpr = new Regex(@"^[\s]*(insert|update|cast|exec|set|upload|delete|drop|select|create|information_schema)[\s])|(""|'|;)$");
    
    Se alguém puder me ajudar a montar uma expressão correta, agradeço.


    Techvia - Ramon Rocha www.techvia.com.br - solucoes@techvia.com.br MSN: techvia@hotmail.com - Skype: techvia
    quarta-feira, 29 de dezembro de 2010 00:43
  • Ramon dúvida sobre asp, favor posta no forum de asp, estou migrando sua questions

     

    Leia tb

    http://www.stardeveloper.com/articles/display.html?article=2008112501&page=1


    Não esqueça de usar o componente </> na barra para posta seu código.
    quarta-feira, 29 de dezembro de 2010 10:18
  • Prezado Seilor,

     

    Você comenteu um engano, não é dúvida sobre ASP...

    Estou justamente convertendo um código ASP para C#, ou seja, a dúvida é em C#. Em ASP já funciona... Não tenho dúvida alguma...

    Agradeço se corrigir o equívoco.

     

    Grato.


    Techvia - Ramon Rocha www.techvia.com.br - solucoes@techvia.com.br MSN: techvia@hotmail.com - Skype: techvia
    quarta-feira, 29 de dezembro de 2010 19:10
  • Ramon dúvida sobre asp, favor posta no forum de asp, estou migrando sua questions

     

    Leia tb

    http://www.stardeveloper.com/articles/display.html?article=2008112501&page=1


    Não esqueça de usar o componente </> na barra para posta seu código.

    Quanto ao artigo, agradeço, mas ele é sobre ASP e a solução que tenho já funciona, perfeitamente, em ASP.

    Techvia - Ramon Rocha www.techvia.com.br - solucoes@techvia.com.br MSN: techvia@hotmail.com - Skype: techvia
    quarta-feira, 29 de dezembro de 2010 19:11