See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 18374|Vastuse: 0

[ASP.NET] SQL-i ohtlike märkide kasutaja sisendi partiituvastus

[Kopeeri link]
Postitatud 08.05.2015 12:29:34 | | |
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="testsql.aspx.cs" Inherits="TestWeb.testsql" %>

  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="TextBox1" runat="server"></asp:TextBox><asp:TextBox ID="TextBox2"
  11.             runat="server"></asp:TextBox><asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
  12.             <asp:Button ID="Button1" runat="server" Text="Button"
  13.             onclick="Button1_Click" />
  14.     </div>
  15.    
  16.     </form>
  17. </body>
  18. </html>
Kopeeri kood

  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 testsql : System.Web.UI.Page
  10.     {
  11.         protected void Page_Load(object sender, EventArgs e)
  12.         {

  13.         }

  14.         protected void Button1_Click(object sender, EventArgs e)
  15.         {
  16.             string[] userinput = new string[] { TextBox1.Text, TextBox2.Text, TextBox3.Text };
  17.             bool a=SQLinfo.sql(userinput);
  18.             Response.Write(a);
  19.         }
  20.     }
  21. }
Kopeeri kood

  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 SQLinfo
  9.     {
  10.         public static bool sql(string[] inputString)
  11.         {
  12.             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";
  13.             try
  14.             {
  15.                 foreach (string sqls in inputString)
  16.                 {
  17.                     if ((sqls != null) && (sqls != String.Empty))
  18.                     {
  19.                         string str_Regex = @"\b(" + SqlStr + @")\b";

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

  24.                     }
  25.                 }
  26.             }
  27.             catch
  28.             {
  29.                 return false;
  30.             }
  31.             return true;
  32.         }
  33.     }
  34. }
Kopeeri kood






Eelmine:Kolmetasandiline arhitektuur ASP.NET (DAL, BLL, UI)
Järgmine:Kui sul on selle käsuga juba avatud DataReader, pead selle esmalt sulgema.
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com