Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 23797|Resposta: 2

[Interface] c# e asp.net previnem métodos de filtragem por injeção SQL

[Copiar link]
Publicado em 19/04/2015 23:54:16 | | | |


Eu uso asp.net para apresentações, hehe

Código da recepção:
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="sqltest.aspx.cs" Inherits="TestWeb.sqltest" %>

  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head runat="server">
  5.     <title></title>
  6. </head>
  7. <body>
  8.     <form id="form1" runat="server">
  9.     <div>
  10.         <asp:TextBox ID="txtsql" runat="server"></asp:TextBox>
  11.         <asp:Button ID="btnsql" runat="server" Text="注入" onclick="btnsql_Click" />
  12.     </div>
  13.     </form>
  14. </body>
  15. </html>
Copiar código
Código de Contexto:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.UI;
  6. using System.Web.UI.WebControls;

  7. namespace TestWeb
  8. {
  9.     public partial class sqltest : System.Web.UI.Page
  10.     {
  11.         protected void Page_Load(object sender, EventArgs e)
  12.         {

  13.         }

  14.         protected void btnsql_Click(object sender, EventArgs e)
  15.         {
  16.             
  17.             if (zhuru.ProcessSqlStr(txtsql.Text))
  18.             {
  19.                 Response.Write("安全");
  20.             }
  21.             else {
  22.                 Response.Write("危险");
  23.             }
  24.         }
  25.     }
  26. }
Copiar código
zhuru.cs Código de Classe:
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Text.RegularExpressions;

  6. namespace TestWeb
  7. {
  8.     public class zhuru
  9.     {
  10.         
  11.         public static bool ProcessSqlStr(string inputString)
  12.         {
  13.             string SqlStr = @"and|or|exec|execute|insert|select|delete|update|alter|create|drop|count|\*|chr|char|asc|mid|substring|master|truncate|declare|xp_cmdshell|restore|backup|net +user|net +localgroup +administrators";
  14.             try
  15.             {
  16.                 if ((inputString != null) && (inputString != String.Empty))
  17.                 {
  18.                     string str_Regex = @"\b(" + SqlStr + @")\b";

  19.                     Regex Regex = new Regex(str_Regex, RegexOptions.IgnoreCase);
  20.                     //string s = Regex.Match(inputString).Value;
  21.                     if (true == Regex.IsMatch(inputString))
  22.                         return false;

  23.                 }
  24.             }
  25.             catch
  26.             {
  27.                 return false;
  28.             }
  29.             return true;
  30.         }

  31.     }
  32. }
Copiar código






Anterior:C#. .NET para prevenir ataques de injeção SQL
Próximo:Como verificar o nome de host de um endereço IP conhecido de uma LAN
 Senhorio| Publicado em 07/02/2022 19:33:01 |
Instruções SQL spliced dinamicamente em Java impedem a injeção de banco de dados
https://www.itsvse.com/thread-10249-1-1.html
Publicado em 06/03/2022 10:40:43 |
Aprenda               
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com