nginx ql語句過濾、檔案注入禁止、溢位攻擊過濾、spam欄位過濾、user-agents頭過濾
上一篇——nginx伺服器防sql注入與溢位(一) 列出了常用的進行注入與溢位的各種防止方法。但是上文列出的是普遍的方法,針對各自現網應用的不同,使用上也需要進行相應的調整。下面列出一下我現網中的防止方法。
一、自動防護
if ($request_uri ~* \.(htm|do)\?(.*)$) { set $req $2; } if ($req ~* "(cost\()|(concat\()") { return 503; } if ($req ~* "union[+|(%20)]") { return 503; } if ($req ~* "and[+|(%20)]") { return 503; } if ($req ~* "select[+|(%20)]") { return 503; }
1、這裡之所以使用$request_uri而未使用$query_string變數,因為通過$request_uri進行rewrite分割更精準。
2、%20代表的是空格,同上文不的是,我這裡把上面的空格匹配進行了取消。這樣像www.361way.com/aaa.do?select * from test之樣的也可以進行匹配。
3、上面的htm是偽靜態,實際上同.do一樣,也是動態檔案。為了便於和靜態檔案進行區分,這裡選擇了htm而不是html。
4、注意,最上面的url裡面的\? ,這個也分重要。如果沒有的話,www.361way.com/aaa.htm select * from test不會被過濾,而www.361way.com/aaa.htm?select * from test會被過濾。如果想將前面的也過濾,只需要把\? 取消即可。
二、日誌獲取,手動分析
具體哪些url有可能有注入漏洞而被人掃描了,可以利用下面的指令碼並通過mail傳送。
#!/bin/bash cd /tmp /bin/rm -rf nginxanalay.tar.gz cd /logs/nginx egrep '(sqlmap|select|"order by")'*|egrep -v '(Googlebot|Baiduspider|Sosospider|stepselect)'|awk -F 'HTTP/1.1"''{print $1}'>/tmp/nginxanalay.log cd /tmp tar czvf nginxanalay.tar.gz nginxanalay.log /usr/bin/sendEmail -f [email protected].com -t 收件人1收件人2-s mail.361way.com -u 'site sql analay'-m 'this is nginxlog analay . see Annex ,That is may be injected into page .'-xu 使用者名稱-xp 密碼-a /tmp/nginxanalay.tar.gz
相關推薦
nginx ql語句過濾、檔案注入禁止、溢位攻擊過濾、spam欄位過濾、user-agents頭過濾
上一篇——nginx伺服器防sql注入與溢位(一) 列出了常用的進行注入與溢位的各種防止方法。但是上文列出的是普遍的方法,針對各自現網應用的不同,使用上也需要進行相應的調整。下面列出一下我現網中的防止方法。 一、自動防護 if ($request_uri ~* \.(htm|do)\?(.*)$) {
mysql、oracle、sqlserver根據對應的表查詢表中的所有欄位名稱、型別、別名、長度等資訊
SELECT t.COLUMN_NAME AS NAME, ( CASE WHEN t.IS_NULLABLE = 'YES' THEN '1' ELSE '0' END ) AS isNull, (t.ORDINAL_POSITION * 10) AS sort, is
搭建 spring boot (二) ---- 配置fastjson,實體欄位格式化、欄位過濾、解決中文亂碼
新增第一個實體並返回json到前端 1、新增第一個實體類Demo.java,設定簡單的屬性id和name並生成getter和setter方法 2、新增介面。在ctroller中新增返回demo的介面 3、重啟應用並訪問介面。可見返回的資料已經是json格式了
django--orm關係欄位(ForeignKey、OneToOneField、ManyToManyField)詳解
django中的關係欄位 1、ForeignKey欄位,即外來鍵欄位,對應一對多的情況,列如:一本書對應一個出版社,一個出版社可對應多本書。 2、ManyToManyFiled欄位,即多對多欄位,對應資料庫中一個數據相互可以對應多條,列如:一本書可以有多個作者,一個作者可以有多本書 3、OneToOneFi
資料庫工作筆記010---Mysql中用SQL增加、刪除欄位,修改欄位名、欄位型別、註釋,調整欄位順序總結
JAVA技術交流QQ群:170933152 Mysql中用SQL增加、刪除欄位,修改欄位名、欄位型別、註釋,調整欄位順序總結 在網站重構中,通常會進行資料結構的修改,所以新增,刪除,增加mysql表的欄位是難免的,有時為了方便,還會增加
如何修改帶索引的欄位的長度,檢視、刪除索引,修改欄位屬性、建立索引!
需要重新建立索引,因為長度不同會認為是兩個不同的所索引。 建立和刪除索引 索引的建立可以在CREATE TABLE語句中進行,也可以單獨用CREATE INDEX或ALTER TABLE來給表增加索引。刪除索引可以利用ALTER TABLE或DROP INDEX語句來實現。 (1)使用ALTER T
java生成mysql資料庫建表語句、欄位、欄位型別、欄位註釋,可實現不用mysqldump備份資料庫
使用 mysqldump 備份資料庫也是可行的,因為每次備份的時候都需要mysqldump這個檔案, 我在windows備份時沒問題,但是放到linux上面時,centos系統死活不認這個檔案,但又不想裝mysql,一氣之下自己研究了個不需要mysqldump就可以備份的程式, 如果看了以下程式
MFC獲取SqlServer資料庫所有表、欄位名、記錄資料
程式碼如下過程其實不是每一步都有,但是主要功能都在! //1、連線資料庫類 BOOL CSqlDlg::Ado(CString strConn) { ::CoInitialize(NULL); // 初始化OLE/COM庫環境 try { m_pConn.CreateInstan
利用arcpy實現arcgis中欄位自動編號(pycharm匯入arcpy站點包,欄位建立、更新與寫值)
一、問題來源 今天看到群裡有一個小夥伴,要實現這樣的一個功能,來看一下他的提問: 問下各位大神,如果圖層裡面有2000個小班,我需要將這2000小班在屬性表裡面編號依次為1 2 3 4……1998 1999 2000該怎麼操作呢 。 於是下面有人說可以對欄位的FID操作
mysql查詢欄位空、不為空的方法總結
1、不為空 Select * From table Where id<>'' Select * From table Where id!='' 2、為空 Select * From table Where id='' Sele
postgresql獲取表結構,表名、表註釋、欄位名、欄位型別及長度和欄位註釋(轉載)
轉載地址:https://blog.csdn.net/weixin_38924323/article/details/80982760 場景描述:navicate 將postgresql表結構匯出到Excel。 1、查詢表名和表註釋 select relna
記錄:Mysql 修改欄位長度、修改列名、新增列、修改自增主鍵起始值
以下轉自https://www.cnblogs.com/yangjinwang/p/5918906.html alter table 表名 modify column 欄位名 型別; 例如 資料庫中user表 name欄位是varchar(30) 可以用 alter tab
JPA 通過註解自動生成表 新增 欄位名、型別、註釋
@Table - 對映表名 @Id - 主鍵 @GeneratedValue(strategy=GenerationType.IDENTITY) - 自動遞增生成 @Column(name = “dict_name”,columnDefinition=”varchar(100) COMMENT ‘字
navicat mysql查資料庫中表名、表數量,欄位名、欄位數量(持續更新中)
1.查資料庫中表數量 (紅色標記的是常用到的重要的表結構資訊表) mysql> use information_schema;Database changedmysql> show tables;+-------------------------------
Oracle 查詢庫中所有表名、欄位名、欄位名說明,查詢表的資料條數、表名、中文表名
查詢所有表名: select t.table_name from user_tables t; 查詢所有欄位名: select t.column_name from user_col_comments t; 查詢指定表的所有欄位名: select t.column_nam
iOS-資料返回欄位null、導致的程式crash問題解決
在iOS開發過程中經常需要與伺服器進行資料處理,但是在資料接通過程中會出現:null “”等問題導致莫名其妙的崩潰。相信你一定會寫各種判斷來處理這些異常,甚至你還會一個一個介面的去改,折讓我們實在是心灰意冷。 再者可能你會寫個分類 調它。這樣也會讓你非常的苦惱
類和物件(欄位=變數、方法=函式、方法過載、靜態成員、屬性、建構函式)
一、類 類包括:欄位(用來儲存資料)、屬性(用來保護欄位,屬性的本質是兩個函式get和set)、建構函式(用來初始化物件,給物件的每一個屬性賦值)、函式(描述物件的行為)、索引器(以索引的方式去訪問物件)。 一個類都可以包含兩種成員:欄位(Field)與方法(Method)
c#+arcgisengine 對屬性表建立欄位項、並賦值(或對已有欄位項值進行更改)
while (pFeature != null) { string[] fldvalue = new string[pFields.FieldCount]; for (int i = 0; i <
Oracle:表名、欄位名、constraint名的長度有限制
說明:複製表(只複製結構,源表名:a 新表名:b) SQL: select * into b from a where 1<>1 feedom.net 說明:拷貝表(拷貝資料,源表名:a 目標表名:b) 中國網管聯盟www_bitscn_com SQL: insert
關於odoo中__mainfest__.py欄位含義、功能詳解
mainfest.py 注:本文摘自《odoo10.0官方文件》 翻譯:李海振 清單檔案用於將python包宣告為Odoo模組並指定模組元資料。 它是一個名為的檔案__manifest__.py,包含一個Python字典,其中每個鍵指定模組元資料。 可用的清