sql敏感
⑴ sql server中对大小写不是不敏感吗为什么错了
N'string'固定的标示,另外sqlserver并不是不能区分大小写,而是默认不区分,可以设置的。
加上 N 代表存入数据库时以 Unicode 格式存储。
N'string' 表示string是和昌羡个Unicode字符串
Unicode 字符串的格式与普通字符串相似,但它前面有一个 N 标识符(N 代表 SQL-92 标准中的国际语言 (National Language))。N 前缀必须是大写字母。例如,'Michél' 是字符串常量而 N'Michél' 则是 Unicode 常量。Unicode 常量被解释为 Unicode 数据,并且不使用代码页进行计算。Unicode 常量确实有排迅改序规则,主要用于控制比较和区分大小写。为 Unicode 常量指派当前数据库的默认排序规则,除非使用 COLLATE 子句为其指定了排序规则。Unicode 数据中的每个字符都唤拍使用两个字节进行存储,而字符数据中的每个字符则都使用一个字节进行存储。有关更多信息,请参见使用 Unicode 数据。
Unicode 字符串常量支持增强的排序规则。
⑵ SQL server 镆ヨ㈠垎鏋愬櫒閲屽ぇ灏忓啓鏁忔劅钖
涓嶆晱镒
⑶ 如何防范SQL注入漏洞及检测
SQL注入漏洞攻击的防范方法有很多种,现阶段总结起来有以下方法:
(1)数据有效性校验。如果一个输入框只可能包括数字,那么要通过校验确保用户输入的都是数字。如果可以接受字母,那就要检查是不是存在不可接受的字符,最好的方法是增加字符复杂度自动验证功能。确保应用程序要检查以下字符:分号、等号、破折号、括号以及SQL关键字。另外限制表单数据输入和查询字符串输入的长度也是一个好方法。如果用户的登录名最多只有10个字符,那么不要认可表单中输入10个以上的字符,这将大大增加攻击者在SQL命令中插入有害代码的难度。
(2)封装数据信息。对客户端提交的数据进行封装,不要将数据直接存入cookie中,方法就是在编程的代码中,插入session、if、try、else,这样可以有效地防止攻击者获取cookie中的重要信息。
(3)去除代码中的敏感信息。将在代码中存在的用户名、口令信息等敏感字段删除,替换成输入框。
SQL=" select from users where username = ’admin’and password= ’1234567’ "
如:这样显然会暴露管理员的用户名、口令信息。可以将其修改成:
SQL= " select * from users where username='" +Txtuser.Text + "' and userpwd='" + Textpwd.Text + "'"
这样就安全了很多,入侵者也是不会轻易的就获取到用户名、口令信息。
(4)替换或删除单引号。使用双引号替换掉所有用户输入的单引号,这个简单的预防措施将在很大程度上预防SQL注入漏洞攻击,单引号时常会无法约束插入数据的Value,可能给予输入者不必要的权限。用双引号替换掉单引号可以使大部分SQL注入漏洞攻击失败。 如:
“select* from users where username='" + admin + "' and userpwd='" + 1234567+ "'”
显然会得到与
“select * from users where username='admin' and password= '1234567'”
相同的结果。
(5)指定错误返回页面。攻击者有时从客户端尝试提交有害代码和攻击字符串,根据Web Service给出的错误提示信息来收集程序及服务器的信息,从而获取想得到的资料。应在Web Service中指定一个不包含任何信息的错误提示页面。
(6)限制SQL字符串连接的配置文件。使用SQL变量,因为变量不是可以执行的脚本,即在Web页面中将连接数据库的SQL字符串替换成指定的Value,然后将Web.config文件进行加密,拒绝访问。
(7)设置Web目录的访问权限。将虚拟站点的文件目录禁止游客用户(如:Guest用户等)访问,将User用户权限修改成只读权限,切勿将管理权限的用户添加到访问列表。
(8)最小服务原则。Web服务器应以最小权限进行配置,只提供Web服务,这样可以有效地阻止系统的危险命令,如ftp、cmd、vbscript等。
(9)鉴别信息加密存储。将保存在数据库users表中的用户名、口令信息以密文形式保存,也可以对users表进行加密处理,这样可以大大增加对鉴别信息访问的安全级别。
(10)用户权限分离。应尽可能的禁止或删除数据库中sa权限用户的访问,对不同的数据库划分不同的用户权限,这样不同的用户只能对授权给自己的数据库执行查询、插入、更新、删除操作,就可以防止不同用户对非授权的数据库进行访问。
⑷ sql濡备綍瀹炵幇镵婂ぉ瀹ゆ晱镒熻瘝镄勫睆钄
sql濡备綍瀹炵幇镵婂ぉ瀹ゆ晱镒熻瘝镄勫睆钄界殑姝ラゃ
1銆佽剧疆璺寰勶细锏诲綍缃戠珯钖庡彴钬旇剧疆钬旀晱镒熻瘝灞忚斀銆
2銆佸紑钖锷熻兘钖庯纴镣瑰嚮鍏抽敭璇嵝斺斿彲镆ョ湅绯荤粺鍖归厤镄勫叧阌璇嶏纴鍙杩涜屾坊锷犳垨鍒犻櫎銆
3銆佺偣鍑诲叏绔欐绱㈠嵆鍙镆ョ湅缃戠珯瀵瑰簲瑙︾姱鍏抽敭璇岖殑椤甸溃锛岃繘鍏ュ瑰簲椤甸溃淇鏀广
⑸ 如何让sql server 2000里的查询对大小写敏感
要想大小写敏感,在创建表的过程中要指定某个列的排序规则中要纤卜区分大小写。
比如
create table test
(
c varchar(10) collate Chinese_PRC_CS_AS
)
Chinese_PRC_CS_AS中CS就表示是区分大小写。
这时
select * from test where c like 'Abc' 和
select * from test where c like 'abc'的结果就不一样了。
如果原表不想改动,弊竖侍可以创建一个临时表,设置大小写敏感,之后将数据导入,再租吵临时表中查询。