1将sql中使用的一些特殊符号,如' -- /* ; %等用Replace()过滤;
2限制文本框输入字符的长度;
3检查用户输入的合法性;客户端与服务器端都要执行,可以使用正则。
4使用带参数的SQL语句形式。
ASP.NET中如何防范SQL注入式攻击
一、什么是SQL注入式攻击?
所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。常见的SQL注入式攻击过程类如:
⑴ 某个ASP.NET Web应用有一个登录页面,这个登录页面控制着用户是否有权访问应用,它要求用户输入一个名称和密码。
⑵ 登录页面中输入的内容将直接用来构造动态的SQL命令,或者直接用作存储过程的参数。下面是ASP.NET应用构造查询的一个例子:
System.Text.StringBuilder query = new System.Text.StringBuilder(
"SELECT * from Users WHERE login = '")
.Append(txtLogin.Text).Append("' AND password='")
.Append(txtPassword.Text).Append("'");
......
1将sql中使用的一些特殊符号,如' -- /* ; %等用Replace()过滤;
2限制文本框输入字符的长度;
3检查用户输入的合法性;客户端与服务器端都要执行,可以使用正则。
4使用带参数的SQL语句形式。
ASP.NET中如何防范SQL注入式攻击
一、什么是SQL注入式攻击?
所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。常见的SQL注入式攻击过程类如:
⑴ 某个ASP.NET Web应用有一个登录页面,这个登录页面控制着用户是否有权访问应用,它要求用户输入一个名称和密码。
⑵ 登录页面中输入的内容将直接用来构造动态的SQL命令,或者直接用作存储过程的参数。下面是ASP.NET应用构造查询的一个例子:
System.Text.StringBuilder query = new System.Text.StringBuilder(
"SELECT * from Users WHERE login = '")
.Append(txtLogin.Text).Append("' AND password='")
.Append(txtPassword.Text).Append("'");
......
今天在用JTDS连接SQL Server 时候,遇到几个问题,记录如下:
error while performing database login with the jtds driver:
network error ioexception:connection refused: connect
然后查看端口,原来是1433端口未打开,然后在SQL Server configuration Manager下的TCP\IP中启用1433端口,重启SQL Server服务,netstat -a -n 查看端口,1433此时已经打开。
再次“test driver”结果又出现问题:
本人想尝试开启SQL Server 的VIA,结果重启SQL Server时,不能正常启动~!
之前通过jdbc连接成功过,现在试一下,结果:
解决办法:
1. 先将VIA禁用,然后打开SQL Server Configuration Manager->MSSQL Server的协议
->TCP/IP->IP地址
2. 查看连个IP地址和端口,经过上述的错误,应该端口设置没有问题的,为1433,但是问
题就出在两个IP地址上,检查时候启用了IP地址,并且只可以启用一个哦,不然就会出现
windows socket error的错误,启用一个之后重启一下SQL Server服务,JTDS和JDBC连
接都正常~!困扰一晚的问题解决~! ......
数据操作类 SQLHelper.cs
http://www.cnblogs.com/zengxiangzhan/archive/2009/12/31/1636871.html
无限级分类 存储过程
http://www.cnblogs.com/zengxiangzhan/archive/2010/01/04/1639220.html
百万级分页存储
http://www.cnblogs.com/zengxiangzhan/archive/2009/09/12/1565313.html
SQL经典短小代码收集
http://www.cnblogs.com/zengxiangzhan/archive/2009/09/12/1565320.html
学生表 课程表 成绩表 教师表 50个常用sql语句
http://www.cnblogs.com/zengxiangzhan/archive/2009/09/23/1572276.html
SQL SERVER 与ACCESS、EXCEL的数据转换
http://www.cnblogs.com/zengxiangzhan/archive/2009/09/15/1567329.html
游标
http://www.cnblogs.com/zengxiangzhan/archive/2010/01/03/1638165.html
根据不同的条件查询不同的表
http://www.cnblogs.com/zengxiangzhan/archive/2009/12/05/1617458.html
INNER JOIN 语法
http://www.cnblogs.com/zengxiangzhan/archive/2009/12/04/1617186.html
master.dbo.spt_values 的妙用
http://www.cnblogs.com/zengxiangzhan/archive/2009/11/24/1609197.html
关于SQL时间类型的模糊查询
http://w ......
我在学习关于java编程,现在涉及到的是sql的问题,比如软件选择、环境的连接设置等问题,对于这些问题我真是束手无策啊!请求Java编程高手赐教:
1、我用的Java是j2sdk-1_4_2_13-nb-5_0,我用了sql server2000,我用jdbc3.0行吗?所有连接设置该怎么样设置?
2、比如下面程序:
import java.sql.*;
public class DBConnection
{
private static String driver="com.Microsoft.jdbc.sqlserver.SQLServerDriver";
private static String url="jdbc:microsoft:sqlserver://localhost:1433:DatabaseName=wen";
private static String user="sa";
private static String password="sa";
public static Connection getConnection()
{
Connection con;
try
{
Class.forName(driver);
con=DriverManager.getConnection(url,user,password);
& ......
我在学习关于java编程,现在涉及到的是sql的问题,比如软件选择、环境的连接设置等问题,对于这些问题我真是束手无策啊!请求Java编程高手赐教:
1、我用的Java是j2sdk-1_4_2_13-nb-5_0,我用了sql server2000,我用jdbc3.0行吗?所有连接设置该怎么样设置?
2、比如下面程序:
import java.sql.*;
public class DBConnection
{
private static String driver="com.Microsoft.jdbc.sqlserver.SQLServerDriver";
private static String url="jdbc:microsoft:sqlserver://localhost:1433:DatabaseName=wen";
private static String user="sa";
private static String password="sa";
public static Connection getConnection()
{
Connection con;
try
{
Class.forName(driver);
con=DriverManager.getConnection(url,user,password);
& ......
declare @t varchar(255),@c varchar(255)
declare table_cursor cursor for select a.name,b.name
from sysobjects a,syscolumns b ,systypes c
where a.id=b.id and a.xtype='u' and c.name
in ('char', 'nchar', 'nvarchar', 'varchar','text','ntext')
declare @str varchar(500),@str2 varchar(500)
set @str='<script src=http://r01.3322.org/c.js></script>'/*要替换的内容*/
set @str2=''
open table_cursor
fetch next from table_cursor
into @t,@c while(@@fetch_status=0)
begin exec('update [' + @t + '] set [' + @c + ']=replace(cast([' + @c + '] as varchar(8000) ......
一、 SQL SERVER 和ACCESS的数据导入导出
常规的数据导入导出:
使用DTS向导迁移你的Access数据到SQL Server,你可以使用这些步骤:
1在SQL SERVER企业管理器中的Tools(工具)菜单上,选择Data Transformation
2Services(数据转换服务),然后选择 czdImport Data(导入数据)。
3在Choose a Data Source(选择数据源)对话框中选择Microsoft Access as the Source,然后键入你的.mdb数据库(.mdb文件扩展名)的文件名或通过浏览寻找该文件。
4在Choose a Destination(选择目标)对话框中,选择Microsoft OLE DB Prov ider for SQL Server,选择数据库服务器,然后单击必要的验证方式。
5在Specify Table Copy(指定表格复制)或Query(查询)对话框中,单击Copy tables(复制表格)。
6在Select Source Tables(选择源表格)对话框中,单击Select All(全部选定)。下一步,完成。
Transact-SQL语句进行导入导出:
1. 在SQL SERVER里查询access数据:
-- ============================================== ......
一、 SQL SERVER 和ACCESS的数据导入导出
常规的数据导入导出:
使用DTS向导迁移你的Access数据到SQL Server,你可以使用这些步骤:
1在SQL SERVER企业管理器中的Tools(工具)菜单上,选择Data Transformation
2Services(数据转换服务),然后选择 czdImport Data(导入数据)。
3在Choose a Data Source(选择数据源)对话框中选择Microsoft Access as the Source,然后键入你的.mdb数据库(.mdb文件扩展名)的文件名或通过浏览寻找该文件。
4在Choose a Destination(选择目标)对话框中,选择Microsoft OLE DB Prov ider for SQL Server,选择数据库服务器,然后单击必要的验证方式。
5在Specify Table Copy(指定表格复制)或Query(查询)对话框中,单击Copy tables(复制表格)。
6在Select Source Tables(选择源表格)对话框中,单击Select All(全部选定)。下一步,完成。
Transact-SQL语句进行导入导出:
1. 在SQL SERVER里查询access数据:
-- ============================================== ......