SQL注入漏洞和SQL调优最近读了程序员的SQL金典这本书,觉得里面的SQL注入漏洞和SQL调优总结得不错,下面简单讨论下SQL注入漏洞和SQL调优。1.SQL注入漏洞由于“'1'='1'”这个表达式永远返回true,而true与任何布尔值的or运算的结果都是true,那么无论正确密码是什么“Password='1'or'1'='1'”的计算值永远是true,这样恶意攻击者就可以使用任何帐户登录系统了。这样的漏洞就被称作“SQL注入漏洞(SQLInject
系统 2019-08-12 01:51:46 2356
MongoDB是一个开源的、无模式的文档型数据库,是当前流行的NOSQL类型数据库的一种(非关系型数据库)MongoDB的数据结构非常松散,是类似json的bjson格式,同时支持对数据建立索引。是一个面向集合的,模式自由的文档型数据库。1.面向集合意思是数据被分组存储在数据集合中,被称为一个集合2.模式自由意味着对于存储在MongoDB数据库中的文件,我们不需要知道它的任何结构定义。提了这么多次"无模式"或"模式自由",它到是个什么概念呢?例如,下面两个
系统 2019-08-12 01:33:45 2356
sqlservr”执行程序是在SQLServer启动时运行的程序。你可以利用“sqlservr”程序来从命令行启动SQLServer。在以这种方式启动时,所有的启动信息会显示在命令提示窗口中,命令提示会话变成执行SQLServer专用的会话了。“sqlservr”工具的语法如下:sqlservr[-sinstance_name][-c][-dmaster_path][-f][-eerror_log_path][-lmaster_log_path][-m][
系统 2019-08-12 01:32:40 2356
书籍下载https://download.csdn.net/download/qfire/11175748采用MNIST数据集进行卷积神经网络实战学习,面向对象设计方法,把每个独立模块封装成对象。训练一个卷积网络,主要包括7部分:激活函数、正则化、优化方法、卷积网络基本模块、训练方法、网络结构和数据集。每个部分都可以抽象成一个类,其中激活函数、正则化、优化方法、卷积网络基本模块和训练方法这5个类基本固定,可以适用于各种网络结构,并且前4个类都设计为接口类,
系统 2019-09-27 17:56:43 2355
什么是序列化什么是序列化,把程序中的对象或者变量,从内存中转换为可存储或可传输的过程称为序列化。在Python中,这个过程称为pickling,在其他语言中也被称为serialization,marshalling,flattening等。程序中的对象(或者变量)在序列化之后,就可以直接存放到存储设备上,或者直接发送到网络上进行传输。序列化的逆向过程,即为反序列化(unpickling),就是把序列化的对象(或者变量)重新读到内存中~Python中序列化的
系统 2019-09-27 17:56:23 2355
什么是协程协程是python种一种实现多任务的方式,他是一种比线程更加小的单元,占用更小的执行单元(资源),为啥说他是一个执行单元,因为他自带CPU上下文,这样在合适gr的时机,可以把一个协程切换到另一个协程,只要在这个过程中保存和恢复cpu上下文那么程序还是可以运行的通俗的理解:一个线程中的某个函数,可以在任何地方保存当前函数的一些临时变量,然后切换到另一个函数中运行,并且切换的次数以及社么时候再切换回来是可控的协程和线程的差异在实现多任务时,线程会自己
系统 2019-09-27 17:55:38 2355
我们通过python-nmap实现一个高效的端口扫描工具,与定时作业crontab及邮件告警结合,可以很好的帮助我们及时发现异常开放的高危端口。当然,该工具也可以作为业务服务端口的可用性探测,例如扫描192.168.209.121-125网段Web服务端口80s是否处于open状态。我们这里所采用的scan方法arguments参数指定为-v-PE-p+端口,-v表示启用细节模式,可以返回非up状态主机清单;-PE表示采用TCP同步扫描(TCPSYN)方式
系统 2019-09-27 17:55:34 2355
PHPFastCGI的远程利用说到FastCGI,大家都知道这是目前最常见的webserver动态脚本执行模型之一。目前基本所有web脚本都基本支持这种模式,甚至有的类型脚本这是唯一的模式(ROR,Python等)。FastCGI的主要目的就是,将webserver和动态语言的执行分开为两个不同的常驻进程,当webserver接收到动态脚本的请求,就通过fcgi协议将请求通过网络转发给fcgi进程,由fcgi进程进行处理之后,再将结果传送给webserve
系统 2019-09-27 17:55:17 2355
把函数作为参数的用法比较直观:deffunc(a,b):returna+bdeftest(f,a,b):printf(a,b)test(func,3,5)但有些情况下,‘要传递哪个函数'这个问题事先还不确定,例如函数名与某变量有关。可以利用func=globals().get(func_name)来得到函数:deffunc_year(s):print'func_year:',sdeffunc_month(s):print'func_month:',sstr
系统 2019-09-27 17:54:04 2355
使用os.environ来读取和修改环境变量:复制代码代码如下:importosprint(os.environ["TEMP"])mydir="c:\\mydir"os.environ["MYDIR"]=mydirprint(os.environ["MYDIR"])pathV=os.environ["PATH"]print(pathV)os.environ["PATH"]=mydir+";"+os.environ["PATH"]print(os.envir
系统 2019-09-27 17:54:00 2355