Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 23797|Atsakyti: 2

[Sąsaja] c# ir asp.net užkirsti kelią SQL injekcijos filtravimo metodams

[Kopijuoti nuorodą]
Paskelbta 2015-04-19 23:54:16 | | | |


Aš naudoju asp.net pristatymams, hehe

Registratūros kodas:
  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>
Kopijuoti kodą
Fono kodas:

  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. }
Kopijuoti kodą
zhuru.cs klasės kodas:
  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. }
Kopijuoti kodą






Ankstesnis:C#. .NET, kad būtų išvengta SQL injekcijos atakų
Kitą:Kaip patikrinti žinomo LAN IP adreso pagrindinio kompiuterio pavadinimą
 Savininkas| Paskelbta 2022-02-07 19:33:01 |
Java dinamiškai sujungti SQL sakiniai neleidžia įterpti duomenų bazės
https://www.itsvse.com/thread-10249-1-1.html
Paskelbta 2022-03-06 10:40:43 |
Mokytis               
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com