• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

      □ 玉易 鄧學彥

      一、引言

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

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

      二、去重算法簡介

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

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

      Python中的字典數(shù)字類型是可變?nèi)萜髂P?,能存儲任意類型對象。字典的每個鍵值對用冒號分割,每個對之間用逗號分割,整個字典包括在花括號中。字典的鍵必須是唯一的,但字典的值不必是唯一,可以取任何數(shù)據(jù)類型。字典格式為:Dict1={key1 :value1,key2 :value2}。

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

      unique_urls=[]

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

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

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

      在Python中集合有去重的功能,即把一個有重復元素的列表或元組等數(shù)據(jù)類型轉變成集合時,其中的重復元素只出現(xiàn)一次,使用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列表,逐一判斷其中元素的唯一性。

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

      三、實現(xiàn)

      (一)實現(xiàn)步驟

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

      第二步:加載數(shù)據(jù)庫導出SQL文件;

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

      第三步:統(tǒng)計數(shù)據(jù)庫內(nèi)所有URL出處;

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

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

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

      四、結語

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

      注釋:

      ①張靜,張妍.正則表達式及其在信息抽取中的應用[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編程語言中的實現(xiàn)解析
      學習運用列表法
      擴列吧
      Java編程語言的特點與應用
      淺談不同編程語言對計算機軟件開發(fā)的影響
      電子制作(2018年1期)2018-04-04 01:48:36
      我是小字典
      正版字典
      讀者(2016年14期)2016-06-29 17:25:50
      静宁县| 四子王旗| 黔西| 晋城| 瑞安市| 清镇市| 宜春市| 呼伦贝尔市| 东阳市| 西峡县| 盘锦市| 北流市| 灵璧县| 南投县| 延安市| 颍上县| 磐安县| 博白县| 漳平市| 宜春市| 鄂温| 陆丰市| 成安县| 玛纳斯县| 措勤县| 策勒县| 习水县| 古蔺县| 阳东县| 岢岚县| 临猗县| 大连市| 贡山| 达尔| 吉木萨尔县| 连山| 松潘县| 买车| 漳浦县| 昌乐县| 浦北县|