中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

crm銷售系統(tǒng)青島網(wǎng)站建設(shè)方案優(yōu)化

crm銷售系統(tǒng),青島網(wǎng)站建設(shè)方案優(yōu)化,貴州網(wǎng)站定制,營(yíng)銷公司有哪些一、什么是SQL注入? SQL注入即是指web應(yīng)用程序?qū)τ脩糨斎霐?shù)據(jù)的合法性沒(méi)有判斷或過(guò)濾不嚴(yán),攻擊者可以在web應(yīng)用程序中事先定義好的查詢語(yǔ)句的結(jié)尾上添加額外的SQL語(yǔ)句,在管理員不知情的情況下實(shí)現(xiàn)非法操作,以此來(lái)實(shí)現(xiàn)欺騙數(shù)據(jù)庫(kù)服…

一、什么是SQL注入?

SQL注入即是指web應(yīng)用程序?qū)τ脩糨斎霐?shù)據(jù)的合法性沒(méi)有判斷或過(guò)濾不嚴(yán),攻擊者可以在web應(yīng)用程序中事先定義好的查詢語(yǔ)句的結(jié)尾上添加額外的SQL語(yǔ)句,在管理員不知情的情況下實(shí)現(xiàn)非法操作,以此來(lái)實(shí)現(xiàn)欺騙數(shù)據(jù)庫(kù)服務(wù)器執(zhí)行非授權(quán)的任意查詢,從而進(jìn)一步得到相應(yīng)的數(shù)據(jù)信息。

SQL案列

String sql = "delete from table1 where id = " + "id";

這個(gè)id從請(qǐng)求參數(shù)中獲取,若參數(shù)被拼接為:1001 or ?1 = 1

String sql = "delete from table1 where id = 1001 or 1 = 1";

此時(shí),數(shù)據(jù)庫(kù)的數(shù)據(jù)都會(huì)被清空掉,后果非常嚴(yán)重.

二、防止SQL注入方式

這里總結(jié)4種:

  • PreparedStatement防止SQL注入

  • mybatis中#{}防止SQL注入

  • 對(duì)請(qǐng)求參數(shù)的敏感詞匯進(jìn)行過(guò)濾

  • nginx反向代理防止SQL注入

1、PreparedStatement防止SQL注入

PreparedStatement具有預(yù)編譯功能,以上述SQL為例,使用PreparedStatement預(yù)編譯后的SQL為:

delete from table1 where id= ?

此時(shí)SQL語(yǔ)句結(jié)構(gòu)已固定,無(wú)論"?"被替換為任何參數(shù),SQL語(yǔ)句只認(rèn)為where后面只有一個(gè)條件,當(dāng)再傳入 1001 or ?1 = 1時(shí),語(yǔ)句會(huì)報(bào)錯(cuò),從而達(dá)到防止SQL注入效果。

2、mybatis中#{}防止SQL注入

mybatis中#{}表達(dá)式防止SQL注入與PreparedStatement類似,都是對(duì)SQL語(yǔ)句進(jìn)行預(yù)編譯處理

注意:

#{} :參數(shù)占位符

${} :拼接替換符,不能防止SQL注入,一般用于

  • 傳入數(shù)據(jù)庫(kù)對(duì)象(如:數(shù)據(jù)庫(kù)名稱、表名)

  • order by ?后的條件

3、對(duì)請(qǐng)求參數(shù)的敏感詞匯進(jìn)行過(guò)濾

這里是springboot的寫(xiě)法,如下:

import org.springframework.context.annotation.Configuration;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
import java.util.Enumeration;
@WebFilter(urlPatterns = "/*",filterName = "sqlFilter")
@Configuration
public class SqlFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}/*** @description sql注入過(guò)濾*/@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {ServletRequest request = servletRequest;ServletResponse response = servletResponse;// 獲得所有請(qǐng)求參數(shù)名Enumeration<String> names = request.getParameterNames();String sql = "";while (names.hasMoreElements()){// 得到參數(shù)名String name = names.nextElement().toString();// 得到參數(shù)對(duì)應(yīng)值String[] values = request.getParameterValues(name);for (int i = 0; i < values.length; i++) {sql += values[i];}}if (sqlValidate(sql)) {//TODO 這里直接拋異常處理,前后端交互項(xiàng)目中,請(qǐng)把錯(cuò)誤信息按前后端"數(shù)據(jù)返回的VO"對(duì)象進(jìn)行封裝throw new IOException("您發(fā)送請(qǐng)求中的參數(shù)中含有非法字符");} else {filterChain.doFilter(request,response);}}/*** @description 匹配效驗(yàn)*/protected static boolean sqlValidate(String str){// 統(tǒng)一轉(zhuǎn)為小寫(xiě)String s = str.toLowerCase();// 過(guò)濾掉的sql關(guān)鍵字,特殊字符前面需要加\\進(jìn)行轉(zhuǎn)義String badStr ="select|update|and|or|delete|insert|truncate|char|into|substr|ascii|declare|exec|count|master|into|drop|execute|table|"+"char|declare|sitename|xp_cmdshell|like|from|grant|use|group_concat|column_name|" +"information_schema.columns|table_schema|union|where|order|by|" +"'\\*|\\;|\\-|\\--|\\+|\\,|\\//|\\/|\\%|\\#";//使用正則表達(dá)式進(jìn)行匹配boolean matches = s.matches(badStr);return matches;}@Overridepublic void destroy() {}
}

4、nginx反向代理防止SQL注入

越來(lái)越多網(wǎng)站使用nginx進(jìn)行反向代理,該層我們也可以進(jìn)行防止SQL注入配置。

將下面的Nginx配置文件代碼放入到server塊中,然后重啟Nginx即可

if ($request_method !~* GET|POST) { return 444; }#使用444錯(cuò)誤代碼可以更加減輕服務(wù)器負(fù)載壓力。#防止SQL注入if ($query_string ~* (\$|'|--|[+|(%20)]union[+|(%20)]|[+|(%20)]insert[+|(%20)]|[+|(%20)]drop[+|(%20)]|[+|(%20)]truncate[+|(%20)]|[+|(%20)]update[+|(%20)]|[+|(%20)]from[+|(%20)]|[+|(%20)]grant[+|(%20)]|[+|(%20)]exec[+|(%20)]|[+|(%20)]where[+|(%20)]|[+|(%20)]select[+|(%20)]|[+|(%20)]and[+|(%20)]|[+|(%20)]or[+|(%20)]|[+|(%20)]count[+|(%20)]|[+|(%20)]exec[+|(%20)]|[+|(%20)]chr[+|(%20)]|[+|(%20)]mid[+|(%20)]|[+|(%20)]like[+|(%20)]|[+|(%20)]iframe[+|(%20)]|[\<|%3c]script[\>|%3e]|javascript|alert|webscan|dbappsecurity|style|confirm\(|innerhtml|innertext)(.*)$) { return 555; }if ($uri ~* (/~).*) { return 501; }if ($uri ~* (\\x.)) { return 501; }#防止SQL注入 if ($query_string ~* "[;'<>].*") { return 509; }if ($request_uri ~ " ") { return 509; }if ($request_uri ~ (\/\.+)) { return 509; }if ($request_uri ~ (\.+\/)) { return 509; }#if ($uri ~* (insert|select|delete|update|count|master|truncate|declare|exec|\*|\')(.*)$ ) { return 503; }#防止SQL注入if ($request_uri ~* "(cost\()|(concat\()") { return 504; }if ($request_uri ~* "[+|(%20)]union[+|(%20)]") { return 504; }if ($request_uri ~* "[+|(%20)]and[+|(%20)]") { return 504; }if ($request_uri ~* "[+|(%20)]select[+|(%20)]") { return 504; }if ($request_uri ~* "[+|(%20)]or[+|(%20)]") { return 504; }if ($request_uri ~* "[+|(%20)]delete[+|(%20)]") { return 504; }if ($request_uri ~* "[+|(%20)]update[+|(%20)]") { return 504; }if ($request_uri ~* "[+|(%20)]insert[+|(%20)]") { return 504; }if ($query_string ~ "(<|%3C).*script.*(>|%3E)") { return 505; }if ($query_string ~ "GLOBALS(=|\[|\%[0-9A-Z]{0,2})") { return 505; }if ($query_string ~ "_REQUEST(=|\[|\%[0-9A-Z]{0,2})") { return 505; }if ($query_string ~ "proc/self/environ") { return 505; }if ($query_string ~ "mosConfig_[a-zA-Z_]{1,21}(=|\%3D)") { return 505; }if ($query_string ~ "base64_(en|de)code\(.*\)") { return 505; }if ($query_string ~ "[a-zA-Z0-9_]=http://") { return 506; }if ($query_string ~ "[a-zA-Z0-9_]=(\.\.//?)+") { return 506; }if ($query_string ~ "[a-zA-Z0-9_]=/([a-z0-9_.]//?)+") { return 506; }if ($query_string ~ "b(ultram|unicauca|valium|viagra|vicodin|xanax|ypxaieo)b") { return 507; }if ($query_string ~ "b(erections|hoodia|huronriveracres|impotence|levitra|libido)b") {return 507; }if ($query_string ~ "b(ambien|bluespill|cialis|cocaine|ejaculation|erectile)b") { return 507; }if ($query_string ~ "b(lipitor|phentermin|pro[sz]ac|sandyauer|tramadol|troyhamby)b") { return 507; }#這里大家根據(jù)自己情況添加刪減上述判斷參數(shù),cURL、wget這類的屏蔽有點(diǎn)兒極端了,但要“寧可錯(cuò)殺一千,不可放過(guò)一個(gè)”。if ($http_user_agent ~* YisouSpider|ApacheBench|WebBench|Jmeter|JoeDog|Havij|GetRight|TurnitinBot|GrabNet|masscan|mail2000|github|wget|curl|Java|python) { return 508; }#同上,大家根據(jù)自己站點(diǎn)實(shí)際情況來(lái)添加刪減下面的屏蔽攔截參數(shù)。if ($http_user_agent ~* "Go-Ahead-Got-It") { return 508; }if ($http_user_agent ~* "GetWeb!") { return 508; }if ($http_user_agent ~* "Go!Zilla") { return 508; }if ($http_user_agent ~* "Download Demon") { return 508; }if ($http_user_agent ~* "Indy Library") { return 508; }if ($http_user_agent ~* "libwww-perl") { return 508; }if ($http_user_agent ~* "Nmap Scripting Engine") { return 508; }if ($http_user_agent ~* "~17ce.com") { return 508; }if ($http_user_agent ~* "WebBench*") { return 508; }if ($http_user_agent ~* "spider") { return 508; } #這個(gè)會(huì)影響國(guó)內(nèi)某些搜索引擎爬蟲(chóng),比如:搜狗#攔截各惡意請(qǐng)求的UA,可以通過(guò)分析站點(diǎn)日志文件或者waf日志作為參考配置。if ($http_referer ~* 17ce.com) { return 509; }#攔截17ce.com站點(diǎn)測(cè)速節(jié)點(diǎn)的請(qǐng)求,所以明月一直都說(shuō)這些測(cè)速網(wǎng)站的數(shù)據(jù)僅供參考不能當(dāng)真的。if ($http_referer ~* WebBench*") { return 509; }#攔截WebBench或者類似壓力測(cè)試工具,其他工具只需要更換名稱即可。

http://www.risenshineclean.com/news/62832.html

相關(guān)文章:

  • 網(wǎng)站外鏈怎么購(gòu)買怎么開(kāi)通網(wǎng)站
  • 政府門(mén)戶網(wǎng)站設(shè)計(jì)方案怎樣進(jìn)入12345的公眾號(hào)
  • wordpress 自帶主題上海seo
  • 論壇備案網(wǎng)站名稱想開(kāi)個(gè)網(wǎng)站怎樣開(kāi)
  • 自適應(yīng)網(wǎng)站設(shè)計(jì)網(wǎng)絡(luò)營(yíng)銷服務(wù)公司
  • 個(gè)人網(wǎng)站開(kāi)發(fā)開(kāi)題報(bào)告青島關(guān)鍵詞優(yōu)化seo
  • 網(wǎng)頁(yè)游戲網(wǎng)站4399怎么優(yōu)化整站
  • 專門(mén)做超市海報(bào)的網(wǎng)站花西子網(wǎng)絡(luò)營(yíng)銷策劃方案
  • 鶴山做網(wǎng)站網(wǎng)絡(luò)銷售網(wǎng)站
  • 尋花問(wèn)柳-專注做一家男人的網(wǎng)站豬百度的網(wǎng)站
  • 廣州正規(guī)網(wǎng)站建設(shè)有哪些cps推廣
  • 公眾號(hào)開(kāi)發(fā)特定標(biāo)簽的推送信息網(wǎng)站優(yōu)化技巧
  • 永康網(wǎng)站設(shè)計(jì)網(wǎng)絡(luò)營(yíng)銷專業(yè)代碼
  • app開(kāi)發(fā)網(wǎng)站模板今日新聞十大頭條內(nèi)容
  • 湖北建設(shè)網(wǎng)站首頁(yè)百度搜索風(fēng)云榜下載
  • 南寧比較有好的網(wǎng)站制作公司外貿(mào)seo推廣公司
  • 線上店免費(fèi)推廣的軟件廊坊seo排名霸屏
  • 佛山多語(yǔ)網(wǎng)站制作手游代理平臺(tái)哪個(gè)好
  • 鹽城網(wǎng)站建設(shè)培訓(xùn)班哈爾濱最新疫情
  • 舉報(bào)網(wǎng)站怎么做新手怎么做網(wǎng)絡(luò)銷售
  • 河北高端網(wǎng)站制作qq群排名優(yōu)化軟件購(gòu)買
  • 圖文可以做網(wǎng)站設(shè)計(jì)嗎電商運(yùn)營(yíng)推廣的方式和渠道有哪些
  • wordpress主題+插件深圳做seo有哪些公司
  • 深圳網(wǎng)站建設(shè)信科獨(dú)家友情鏈接外鏈
  • 外貿(mào)獨(dú)立站搭建東莞seo優(yōu)化推廣
  • 北京 網(wǎng)站 公安備案品牌推廣平臺(tái)
  • win7怎么做網(wǎng)站服務(wù)器嗎怎么優(yōu)化網(wǎng)站關(guān)鍵詞排名
  • 哪個(gè)公司網(wǎng)站做的好阿拉善盟seo
  • 真正學(xué)做網(wǎng)站要多久北京seo優(yōu)化排名
  • 網(wǎng)站開(kāi)發(fā)視頻教學(xué)網(wǎng)絡(luò)優(yōu)化推廣公司哪家好