前言WAF上线之后,处理最多的是误报消除。产生误报有多种原因,比如web应用源码编写时允许客户端提交过多的cookie;比如单个参数提交的数值太大。把误报降低到了可接受的范围后,还要关注漏报。WAF不是神,任何WAF都可能被绕过。所以还需要定位漏过的攻击,明确漏报的原因,才能updateWAF的策略。要定位漏报,就必须分析Web应用的访问日志了。一个站点,每天产生的access日志大概接近1GB,显然靠肉眼看是不现实的。这就需要用python帮助自动分析。
系统 2019-09-27 17:37:54 1920
pythonlogging模块使用logging模块日志记录的重要性在开发过程中,我们可以printf或者Debug来排查问题。但是在生产环境中(黑盒环境)出现问题,我们并不能知道在运行的环境中的哪个地方出现了问题。如果我们当时有日志记录,我们就可以方便地追踪到在当时运行过程中出现了怎样的状况,从而排查问题。日志记录是非常有必要的,任何一款软件如果没有标准的日志记录,都不能算作一个合格的软件。作为开发者,我们需要重视并做好日志记录过程。logging的工作
系统 2019-09-27 17:56:32 1919
1base64Python内置的base64模块可以实现base64、base32、base16、base85、urlsafe_base64的编码解码,python3.x通常输入输出都是二进制形式,2.x可以是字符串形式。base64模块的base64编码、解码调用了binascii模块,binascii模块中的b2a_base64()函数用于base64编码,binascii模块中的a2b_base64()函数用于base64解码。importbase6
系统 2019-09-27 17:54:53 1919
文章目录python常用数据存储方法txtjsoncsvmsyql安装pymysql连接建库建表插入删除修改查询mongodb安装连接建库建文档增删改查redis安装连接操作公用方法字符串列表集合有序集合散列其他sqlalchemypostgresqlmysqloracleMicrosoftSQLServersqlitepython常用数据存储方法txtwithopen('test.txt','w',encoding='utf8')asf:f.write(
系统 2019-09-27 17:54:52 1919
一、创建一个项目如果这是你第一次使用Django,那么你必须进行一些初始设置。也就是通过自动生成代码来建立一个Django项目--一个Django项目的设置集,包含了数据库配置、Django详细选项设置和应用特性配置,具体操作步骤如下所示。1.新建Django项目选择sqlite数据库2.创建网站模块app3.测试新建的模块是否正常Validatingmodels...0errorsfoundMarch12,2014-10:26:53Djangoversi
系统 2019-09-27 17:53:09 1919
InstallingOpenCVinUbuntuforPython3byWK·PublishedMarch2,2016·UpdatedMarch3,2017InstallingOpenCVinlinuxforPython3isnotthatstraightforward,sointhistutorial,we’llgothroughthestepsonhowdowedoit.We’llbeusinga64bitUbuntu16.04system,andPy
系统 2019-09-27 17:53:02 1919
前言在Python中元组是一个相较于其他语言比较特别的一个内置序列类型。有些python入门教程把元组成为“不可变的列表”,这种说法是不完备的,其并没有完整的概括元组的特点。除了用作不可变的列表,它还可以用于没有字段名的数据记录。下面的内容就围绕元组作为数据记录属性展开,并介绍带字段名的具名元组函数namedtuple,列表属性不再本文中叙述。元组对于数据的记录元组中的每个元素都存放了记录中一个字段的数据,外加这个字段的位置,正是这个位置信息给数据赋予了意
系统 2019-09-27 17:51:46 1919
python的布尔值True和False相当于1和0,True==1,False==0,True+1=2是成立。在if()条件判断语句中,0、空字符串("")、None、空列表([])、空元组(())、空集合({})这六种都等价于False,详见示例1,但是用==(比较值是否相等,不比较引用地址)比较时只有0==False为True,其他五种都是False,示例2。示例1#示例1if0:print("0")elif"":print("\"\"")elifN
系统 2019-09-27 17:50:47 1919
Python实战系列用于记录实战项目中的思路,代码实现,出现的问题与解决方案以及可行的改进方向本文为第2篇�C200行Python代码实现2048一、分析与函数设计1.1游戏玩法2048这款游戏的玩法很简单,每次可以选择上下左右滑动,每滑动一次,所有的数字方块都会往滑动的方向靠拢,系统也会在空白的地方乱数出现一个数字方块,相同数字的方块在靠拢、相撞时会相加。(介绍来自百度百科)1.2函数设计_init_()初始化4*4游戏地图,分数等游戏基本数据is_ga
系统 2019-09-27 17:50:07 1919
在python的BeautifulSoup4扩展库的使用过程中出现了TypeError:listindicesmustbeintegersorslices,notstr这个错误,这里就分析一下为什么会报错以及如何解决。这个错误的意思是'类型错误:list的索引必须是'integers'或者'slices'不能是'str'我出现错误的代码:#引入库frombs4importBeautifulSoup#读取页面soup=BeautifulSoup(open('
系统 2019-09-27 17:49:33 1919
pythonmac安装mysqlclient报错如下解决办法解决办法在python3中,django使用mysql时需要安装maysql驱动,django2.2中pymysql最高版本不够高,这里使用mysqlclient,但安装过程报错,这里记录一下。pipinstallmysqlclient但是报错Usingcachedhttps://files.pythonhosted.org/packages/f4/f1/3bb6f64ca7a429729413e
系统 2019-09-27 17:46:07 1919
本文实例讲述了python实现批量获取指定文件夹下的所有文件的厂商信息的方法。分享给大家供大家参考。具体如下:功能代码如下:importos,string,shutil,reimportpefileimportcodecs,sysimportwximportstruct#输出中打印Unicode字符#sys.stdout=codecs.lookup('utf-8')[-1](sys.stdout)defaddToDict(theDict,PEfile_Pa
系统 2019-09-27 17:56:11 1918
所有标准的序列操作对字符串都适用,但字符串是不可变的字符串常量:单引号:‘spa"m'双引号:"spa'm"三引号:'''...spam...''',"""...spam..."""转义字符:"s\tp\na\om"Raw字符串:r"C:\new\test.spm"Unicode字符串:u'eggs\u0020spam单双引号是一样的单双引号可以互换,字符常量表达式可以用两个单引号或两个双引号来表示--两种形式同样有效返回相同类型的对象:复制代码代码如下:
系统 2019-09-27 17:55:14 1918
利用python3来实现TCP协议,和UDP类似。UDP应用于及时通信,而TCP协议用来传送文件、命令等操作,因为这些数据不允许丢失,否则会造成文件错误或命令混乱。下面代码就是模拟客户端通过命令行操作服务器。客户端输入命令,服务器执行并且返回结果。TCP(TransmissionControlProtocol传输控制协议):是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC793定义。TCP客户端fromsocketimport*ho
系统 2019-09-27 17:55:14 1918
python+web操作爬虫自动填写表单Preinstallpackage安装webdriver库(chorme版本):找到你的版本,下载好放到Google/Chrome/Application文件夹下http://npm.taobao.org/mirrors/chromedriver/配置环境变量C:\Users\menglingjun\AppData\Local\Google\Chrome\Application把这个加到环境变量,可能你那不一样,就是
系统 2019-09-27 17:51:21 1918