国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

快速排除網站CMS系統(tǒng)中可疑URL地址的實現

2020-06-19 04:09:22玉易鄧學彥
視聽 2020年6期
關鍵詞:編程語言列表字典

□ 玉易 鄧學彥

一、引言

隨著互聯網技術的不斷發(fā)展和廣泛應用,網絡安全問題也變得越來越嚴重。在日常的網站維護和安全管理中,網站版本每次上線或例行代碼變更時,網站運維人員都必須對網站數據進行排查,但網站CMS系統(tǒng)中網頁數據量巨大,無法人工一一查看。為提高網站運維人員的工作效率,我們利用Python語言中正則表達式和去重算法編寫程序,對網站CMS系統(tǒng)引用的URL地址進行快速統(tǒng)計,查找可疑地址,排除了風險隱患。

Python是一種高級編程語言,采用解釋運行的方式,編寫后無需編譯即可直接通過解釋器執(zhí)行,編程效率極高,在各編程語言中位居前列。正則表達式是內嵌在Python中的編程語言,通過re模塊實現,基本功能是匹配、替換和提取。構造正則表達式,是通過將元字符與普通字符按各種方式結合在一起,用事先定義好的規(guī)則來匹配或捕獲那些符合某個模式的文本。正則表達式的形式為/匹配模式/,其中位于定界符之間的部分就是將要在目標對象中進行匹配的模式①。

二、去重算法簡介

利用正則表達式匹配出網站CMS系統(tǒng)引用的URL地址列表數據是包含重復信息的,因此需要對其進行去重處理。實現去重的算法常見有如下幾種。

(一)利用字典的fromkeys()和keys()方法②

Python中的字典數字類型是可變容器模型,能存儲任意類型對象。字典的每個鍵值對用冒號分割,每個對之間用逗號分割,整個字典包括在花括號中。字典的鍵必須是唯一的,但字典的值不必是唯一,可以取任何數據類型。字典格式為:Dict1={key1 :value1,key2 :value2}。

1.Python字典fromkeys()函數用于創(chuàng)建一個新字典,語法為 dict.fromkeys(seq[,value]),其中,seq 為字典鍵值列表,value為可選參數。用fromkeys()方法去重可得到一個字典實例,去重之后創(chuàng)建了一個以源列表元素為鍵,值為 None的新字典(Dict):

unique_urls=[]

unique_urls.extend({}.fromkeys(total_urls).keys())

2.Python字典keys()函數以列表返回一個字典所有的鍵,語法為dict.keys(),dict.keys()函數返回的是一個字典所有的鍵。利用該方法去重能重新創(chuàng)建一個新列表實例,得到去除重復數據后的列表。

(二)利用set集合進行去重

在Python中集合有去重的功能,即把一個有重復元素的列表或元組等數據類型轉變成集合時,其中的重復元素只出現一次,使用set()方法③。舉例如下:使total_urls,unique_urls分別為含有重復元素的列表和元組,使用set()方法后可轉變成不含重復元素的集合類型。

unique_urls=set(total_urls)

unique_urls=list(unique_urls)

(三)利用for循環(huán)和in條件判斷去重

在python中,可使用關鍵字in來判斷特定的值是否存在列表中,使用關鍵字not in來判斷特定的值不存在列表中。此外,for循環(huán)和關鍵字in還可遍歷整個list列表,逐一判斷其中元素的唯一性。

經過速度對比測試,我們選用keys()方法來進行去重。

三、實現

(一)實現步驟

第一步:創(chuàng)建本地文件夾,用于存放數據庫備份文件和導出文件;

第二步:加載數據庫導出SQL文件;

e.compile(r'https?://(?:[-w.]|(?:%[da-fA-F]{2}))+');

第三步:統(tǒng)計數據庫內所有URL出處;

第四步:list列表到dict字典之間互相轉換,利用字典key的唯一性去掉了重復的URL地址,將結果保存至桌面;

第五步:查找可疑的URL地址,越不規(guī)則的URL越可疑。

(二)程序設計(如下圖)

四、結語

本文通過使用Python編寫程序對網站CMS系統(tǒng)引用的URL進行快速安全排查,利用了正則表達式快速準確的匹配、替換和提取等功能以及去重算法,在實際使用中顯著提高了網站運維人員日常巡檢的工作質量和效率,有力保障了網站的安全。

注釋:

①張靜,張妍.正則表達式及其在信息抽取中的應用[J].電腦知識與技術,2009(15):3867-3868.

②花田半畝2091.Python列表的去重方式[EB/OL].博客園,2020-04-02.https://www.cnblogs.com/longyuu/p/10033820.html.

③Allen-Liu.Python中的集合類型及其操作[EB/OL]CSDN,2017 -07 -27.https://blog.csdn.net/bbc955625132551/article/details/76169197.

猜你喜歡
編程語言列表字典
巧用列表來推理
開心字典
家教世界(2023年28期)2023-11-14 10:13:50
開心字典
家教世界(2023年25期)2023-10-09 02:11:56
壓力-體積轉換在CFC編程語言中的實現解析
學習運用列表法
擴列吧
Java編程語言的特點與應用
淺談不同編程語言對計算機軟件開發(fā)的影響
電子制作(2018年1期)2018-04-04 01:48:36
我是小字典
正版字典
讀者(2016年14期)2016-06-29 17:25:50
桦南县| 青海省| 岱山县| 华安县| 瓦房店市| 伊宁市| 仪陇县| 梅河口市| 铜梁县| 安康市| 晋中市| 马鞍山市| 兴文县| 迁安市| 大庆市| 黄山市| 瑞昌市| 鄂托克前旗| 渝北区| 和田市| 张掖市| 涿鹿县| 科技| 静安区| 察哈| 咸丰县| 阜南县| 丰台区| 淮滨县| 密云县| 公安县| 大兴区| 耒阳市| 西盟| 荥阳市| 秀山| 拜泉县| 全椒县| 江阴市| 黔西| 临夏县|