• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 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
    寿阳县| 和平区| 海门市| 杭锦旗| 苍南县| 潞城市| 墨玉县| 延长县| 武强县| 石台县| 永康市| 昭觉县| 苍溪县| 三亚市| 济南市| 汾西县| 乐业县| 宁德市| 玉田县| 马关县| 余姚市| 凌云县| 中牟县| 壤塘县| 蒙阴县| 余干县| 清原| 武定县| 电白县| 应城市| 榆中县| 武宁县| 碌曲县| 西和县| 宽城| 搜索| 洪泽县| 遵化市| 商都县| 壶关县| 吉林省|