动软代码生成器注意事项-Sql注入
? ? ? ? ??動軟可以說是一款很好的代碼生成器軟件,只要有數(shù)據(jù)庫,那么除了U層以外的代碼都可以生成了,自動生成三層架構(gòu)的完整項(xiàng)目和代碼。
?
1、動軟介紹
????????
? ? ? ? ?
? ? ? ? ??動軟可以生成基于面向?qū)ο蟮乃枷牒腿龑蛹軜?gòu)設(shè)計(jì)的代碼,結(jié)合了軟件開發(fā)中經(jīng)典的思想和設(shè)計(jì)模式,融入了工廠模式,反射機(jī)制等等一些思想。主要是現(xiàn)在對應(yīng)數(shù)據(jù)庫中表的積累代碼的自動生成。
?
主要的功能:
??? 1、自動生成代碼。生成代碼的同時,各層的引用關(guān)系也就做好了。各層,所有能想到的方法都有了,很全。
??? 2、生成存儲過程和腳本
??? 3、生成數(shù)據(jù)庫結(jié)構(gòu)文檔
??? 4、多類型數(shù)據(jù)庫管理器
??? 5、查詢分析器
???? 6、插件
? ?這樣動軟就幫我們把一些重復(fù)性的東西做好了,我們不用再寫一些重復(fù)性的代碼而浪費(fèi)時間了。???????
?
2、Sql注入
?????????
? ? 以前我們的認(rèn)識是類似存儲過程的就會防止Sql注入,雖然不是絕對的,但是防御能力也比較強(qiáng)吧。
?????????所謂SQL注入式攻擊,就是攻擊者把SQL命令插入到Web表單的輸入域或頁面請求的查詢字符串,欺騙服務(wù)器執(zhí)行惡意的SQL命令。在某些表單中,用戶輸入的內(nèi)容直接用來構(gòu)造(或者影響)動態(tài)SQL命令,或作為存儲過程的輸入?yún)?shù),這類表單特別容易受到SQL注入式攻擊。
???
????????動軟擁有這么多功能,很方便,那么它是完美的嗎?動軟生成器生成的D層的代碼都是拼接的字符串strWhere,這樣很容易造成Sql注入,有人很輕易的就可以擊破我們的系統(tǒng)。
????????為了防止SQL注入我們只需要加入幾行代碼就可以了,這幾行代碼可以將非法字符過濾掉:
/// <summary> /// 過濾 Sql 語句字符串中的注入腳本/// </summary> /// <param name="source"> 傳入的字符串 </param> /// <returns> 過 濾后的字符串 </returns> public static string SqlFilter(string source){// 單引號替換成兩個單引號 source = source.Replace(" ' ", " '' ");// 半角封號替換為全角封號,防止多語句執(zhí)行 source = source.Replace(";", "");// 半角括號替換為全角括號 source = source.Replace(" ( ", " ( ");source = source.Replace(" ) ", " ) ");// 要用正則表達(dá)式替換,防止字母大小寫得情況// 去除執(zhí)行存儲過程的命令關(guān)鍵字 source = source.Replace(" Exec ", "");source = source.Replace(" Execute ", "");source = source.Replace(" Create ", "");source = source.Replace(" Drop ", "");// 去除系統(tǒng)存儲過程或擴(kuò)展存儲過程關(guān)鍵字 source = source.Replace(" xp_ ", " x p_ ");source = source.Replace(" sp_ ", " s p_ ");// 防止16進(jìn)制注入 source = source.Replace(" 0x ", " 0 x ");return source;}
? ??
? ? 對數(shù)據(jù)庫來說是非法的字符對于業(yè)務(wù)來說很可能是合法的。所以過濾非法字符還需要跟業(yè)務(wù)相結(jié)合,謹(jǐn)慎使用。
?
3、總結(jié)
?????????
? ? 比如像淘寶那樣大型網(wǎng)站做的就非常堅(jiān)固,雙十一,十二的時候購物的人那么多也沒有什么異常,希望自己哪天也能做出那么強(qiáng)大的網(wǎng)站,那么強(qiáng)大的框架,學(xué)習(xí)之中……
總結(jié)
以上是生活随笔為你收集整理的动软代码生成器注意事项-Sql注入的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓模拟器刷小米系统_小米5x原生rom
- 下一篇: StatusCodeError: 400