1 新建一个类,实现IHttpModule接口 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Text; namespace DotNet.Common.WebForm { /// <summary> /// 简单防止sql注入 /// &…
产生原因 一方面自己没这方面的意识,有些数据没有经过严格的验证,然后直接拼接 SQL 去查询.导致漏洞产生,比如: $id = $_GET['id']; $sql = "SELECT name FROM users WHERE id = $id"; 因为没有对 $_GET['id'] 做数据类型验证,注入者可提交任何类型的数据,比如 " and 1= 1 or " 等不安全的数据.如果按照下面方式写,就安全一些. $id = intval($_GET['id']);…
Mybatis这个框架在日常开发中用的很多,比如面试中经常有一个问题:$和#的区别,它们的区别是使用#可以防止SQL注入,今天就来看一下它是如何实现SQL注入的. 什么是SQL注入 在讨论怎么实现之前,首先了解一下什么是SQL注入,我们有一个简单的查询操作:根据id查询一个用户信息.它的sql语句应该是这样:select * from user where id =.我们根据传入条件填入id进行查询. 如果正常操作,传入一个正常的id,比如说2,那么这条语句变成select * from use…
<?php /** * SQL Parser from: http://code.google.com/p/php-sql-parser/ * License: New BSD */ class PHPSQLParser { var $reserved = array(); var $functions = array(); function __construct($sql = false) { #LOAD THE LIST OF RESERVED WORDS $this->load_res…
一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. 1.创建视图 -格式:CREATE VIEW 视图名称 AS SQL语句 CREATE VIEW v1 AS SELET nid, name FROM A WHERE nid 2.删除视图 --格式:DROP VIEW 视图名称 DROP VIEW v1 3.修改视图 -- 格式:ALTER VIEW 视图名称 AS SQL语句 A…