asp.net – 使用Microsoft Access和VB.NET进行SQL注入预防
发布时间:2020-12-16 03:48:51 所属栏目:asp.Net 来源:网络整理
导读:我是ASP.NET的初学者,所以我对如何在ASP.NET中阻止SQL注入有一些疑问.我的编程语言是VB.NET,而不是C#,我使用Microsoft Access作为我的数据库. 我的问题是: 如何保护我的数据库免受SQL注入? 我一直在阅读其他论坛的帖子,他们说使用 带有存储过程的参数,带有
我是ASP.NET的初学者,所以我对如何在ASP.NET中阻止SQL注入有一些疑问.我的编程语言是VB.NET,而不是C#,我使用Microsoft Access作为我的数据库.
我的问题是: >如何保护我的数据库免受SQL注入? 解决方法
这是一个非常简单的ASP.NET示例,在VB.NET中通过OleDb使用参数化查询:
Default.aspx的 <%@ Page Title="Home Page" Language="vb" MasterPageFile="~/Site.Master" AutoEventWireup="false" CodeBehind="Default.aspx.vb" Inherits="vbOleDbSite._Default" %> <asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> </asp:Content> <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> <p> First Name: <asp:TextBox ID="FirstName" runat="server"></asp:TextBox><br /> Last Name: <asp:TextBox ID="LastName" runat="server"></asp:TextBox><br /> <br /> <asp:Button ID="btnAddUser" runat="server" Text="Add User" /> <br /> Status: <span id="spanStatus" runat="server">Awaiting submission...</span> </p> </asp:Content> Default.aspx.vb Public Class _Default Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object,ByVal e As System.EventArgs) Handles Me.Load End Sub Protected Sub btnAddUser_Click(sender As Object,e As EventArgs) Handles btnAddUser.Click Dim newID As Long = 0 Using con As New OleDb.OleDbConnection con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:__tmptestData.accdb;" con.Open() Using cmd As New OleDb.OleDbCommand cmd.Connection = con cmd.CommandText = "INSERT INTO UsersTable (LastName,FirstName) VALUES (?,?);" cmd.Parameters.AddWithValue("?",Me.LastName.Text) cmd.Parameters.AddWithValue("?",Me.FirstName.Text) cmd.ExecuteNonQuery() End Using Using cmd As New OleDb.OleDbCommand cmd.Connection = con cmd.CommandText = "SELECT @@IDENTITY" newID = cmd.ExecuteScalar() End Using con.Close() End Using Me.spanStatus.InnerText = "User """ & Me.FirstName.Text & " " & Me.LastName.Text & _ """ has been added (ID: " & newID.ToString() & ")." End Sub End Class 笔记: >参数化查询使用“?”而不是参数的“真实”名称,因为Access OLEDB忽略参数名称.必须按照它们在OleDbCommand.CommandText中出现的确切顺序定义参数.> [UsersTable]表具有AutoNumber主键,SELECT @@ IDENTITY检索INSERT INTO语句创建的新键值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – 实体框架:ViewModel到域模型
- ASP.NET如何知道单击哪个Button以引发其事件
- asp.net-mvc – 在Visual Studio中使用TypeScript在lib.d.t
- 问题在ASP.NET中使用System.Web.Caching.Cache类
- asp.net – 无法CoCreate Profiler错误 – 但不使用分析器
- asp.net – 更好的方式来获取页面名称
- asp.net – 在IE11中无法正确显示站点
- ASP.NET十七种正则表达试
- asp.net – Orchard CMS 1.x [文档存储] – 混合记录支持和
- asp.net – 如何使用ListItems初始化DropDownList
推荐文章
站长推荐
- ASP.NET中模态屏幕的最佳选择
- asp.net-mvc – ASP.NET MVC验证消息未被本地化
- asp.net-mvc – 应用偏移量时表示的UTC时间必须介
- ASP.NET对txt文件相关操作(读取、写入、保存)
- asp.net – 比较Razor vs ASPX语法
- asp.net – 通过XSP2运行守护进程的任何问题?
- asp.net-mvc – ASP.NET MVC.如何创建接受和mult
- asp.net-mvc – 编辑器在没有@foreach的情况下不
- asp.net – 超过了JavaScriptSerializer.MaxJson
- asp.net-mvc – 从控制器中的formcollection中找
热点阅读