安全

PHP网站常见安全漏洞及防御方法

你离开我真会死。 提交于 2019-11-29 23:40:14
转自微信订阅号: lampbrother 一、常见PHP网站安全漏洞 对于PHP的漏洞,目前常见的漏洞有五种。分别是Session文件漏洞、SQL注入漏洞、脚本命令执行漏洞、全局变量漏洞和文件漏洞。这里分别对这些漏洞进行简要的介绍。 1、session文件漏洞 Session攻击是黑客最常用到的攻击手段之一。当一个用户访问某一个网站时,为了免客户每进人一个页面都要输人账号和密码,PHP设置了Session和Cookie用于方便用户的使用和访向。 2、SQL注入漏洞 在进行网站开发的时候,程序员由于对用户输人数据缺乏全面判断或者过滤不严导致服务器执行一些恶意信息,比如用户信息查询等。黑客可以根据恶意程序返回的结果获取相应的信息。这就是月行胃的SQL注入漏洞。 3、脚本执行漏洞 脚本执行漏洞常见的原因是由于程序员在开发网站时对用户提交的URL参数过滤较少引起的,用户提交的URL可能包含恶意代码导致跨站脚本攻击。脚本执行漏洞在以前的PHP网站中经常存在,但是随着PHP版本的升级,这些间题已经减少或者不存在了。 4、全局变量漏洞 PHP中的变量在使用的时候不像其他开发语言那样需要事先声明,PHP中的变量可以不经声明就直接使用,使用的时候系统自动创建,而且也不需要对变量类型进行说明,系统会自动根据上下文环境自动确定变量类型。这种方式可以大大减少程序员编程中出错的概率,使用起来非常的方便。 5

PHP安全编码

旧街凉风 提交于 2019-11-29 23:39:56
一、开始前的一些建议 1.不要相信任何用户输入或第三方数据来源,包括$_GET、$_POST($_ FILES )、 $_COOKIE 、 $_SERVER的部分参数 等。 2.HTML、PHP、MYSQL等使用统一的UTF-8编码。 3.数据库SQL构造时尽量使用'包裹参数。 4.参数对比时正确使用 === 和 == 。 5.尽量选择白名单而非黑名单式过滤。 二、关于SQL注入 1.SQL注入的产生原因 SQL注入的产生在于外界的输入改变了原本定义的SQL语意,譬如: 原本定义的SQL语意, $_GET['name'] = 'abc'; $name = $_GET['name']; SELECT * FROM `admin` where user_name = '$name'; 最终生成的SQL为,SELECT * FROM `admin` where user_name = 'abc'; 外界输入改变后的语意, $_GET['name'] = 'abc\' or \'a\'=\'a'; $name = $_GET['name']; SELECT * FROM `admin` where user_name = '$name'; 最终生成的SQL为,SELECT * FROM `admin` where user_name = 'abc' or 'a'='a';

收藏

三世轮回 提交于 2019-11-29 08:56:47
原文地址: https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html?spm=a2c4e.11153940.blogcont324371.10.68b578d3G07OBO 中英文对照: https://www.microsofttranslator.com/bv.aspx?to=zh-CHS&refd=www.translatoruser.net&r=true&a=https%3A%2F%2Fdocs.oracle.com%2Fjavase%2F8%2Fdocs%2Ftechnotes%2Fguides%2Fsecurity%2Fjsse%2FJSSERefGuide.html%3Fspm%3Da2c4e.11153940.blogcont324371.10.68b578d3G07OBO 本指南涵盖以下主题: 介绍 特点和好处 JSSE 标准 API SunJSSE 提供商 相关文档 JRE 安装目录 术语和定义 安全套接字层 (SSL) 协议概述 为什么使用 SSL? SSL 的工作原理 JSSE 类和接口 核心类和接口 SocketFactory 和 ServerSocketFactory 类 SSLSocketFactory 和

学习PHP精粹,编写高效PHP代码之安全性

非 Y 不嫁゛ 提交于 2019-11-28 19:11:43
一、过滤输入、避免输出 有时我们将短语“过滤输入、避免输出”缩写为FIEO,这已成为PHP应用程序的安全真言。 1、利用ctype进行验证 ctype: http://php.net/ctype 2、利用PCRE(Perl兼容的正则表达式)进行验证 PCRE: http://php.net/pcre 二、跨站脚本 跨站脚本通常简称为XSS,攻击载体以在应用程序输出中由用户提供的变量所在位置为目标,但该变量没有适当地转义。这允许攻击者注入他们选择的一个客户端脚本作为这个变量值的一部分。下面是代码受到这种类型攻击的示例: <form action="<?php echo $_SERVER['PHP_SELF'];?>"> <input type="submit" value="submit" /></form> 在线资源: 1、http://ha.ckers.org/xss.html 2、http://shiflett.org/articles/cross-site-scripting 3、http://seancoates.com/blogs/xss-woes 三、伪造跨站脚本 比方说,某个攻击者想从一个流行的在线商店中得到一个昂贵的商品而不用付钱。相反,他们想让一个毫不知情的受害者支付这笔金额。他们选择的武器是:一个伪造的跨站请求

8个超实用的Java测试工具和框架

☆樱花仙子☆ 提交于 2019-11-26 15:22:10
Java入门 如果你才刚开始接触Java世界,那么要做的第一件事情是,安装JDK——Java Development Kit(Java开发工具包),它自带有Java Runtime Environment(JRE)和JVM(Java运行时环境)。它能让你在自己的电脑上编译、运行、测试你的Java程序。 此外,你还需要IDE(集成开发环境)。选择有很多,如IntelliJ、Eclipse和NetBeans。 Java测试工具 下面是我精选的8个最棒的Java测试工具和框架。 1.Arquillian Arquillian是JVM一个高度创新性和可扩展的测试平台,支持Java开发人员轻松创建自动化集合的,功能性的和验收的测试。Arquillian允许在运行时间执行测试。Arquillian可以用来管理单个或多个容器的生命周期,捆扎测试用例,从属类和资源。它还能够部署归档到容器中,在容器中执行测试、捕获结果,并创建报告。 Arquillian集成了常见的测试框架,如JUnit 4、TestNG 5,并允许使用现有的IDE发布测试,并且由于其模块化的设计使得能够运行Ant和Maven测试插件。 官方网站: http://arquillian.org/ 2.JTest JTest也被称为“Parasoft JTest”,是一款通过Parasoft制作的自动化的Java软件测试和静态分析软件

点亮我的攻击地图:树莓派蜜罐节点部署实战

别等时光非礼了梦想. 提交于 2019-11-26 14:26:37
Part1 蜜罐网络简介 详情请见: [ http://drops.wooyun.org/papers/5968 ][url1-1] (蜜罐网络) [url1-1]: http://drops.wooyun.org/papers/5968 采用MHN中心服务器和树莓派蜜罐终端的方式主要考虑如下几点 MHN中心服务器可部署在独立ip的远程VPS上,部署简单,支持多种蜜罐 树莓派蜜罐终端成本低,部署也比较容易,部署好后可以即插即用 MHN中心服务器汇总数据,展示;使得蜜罐终端可以灵活部署在内外网,只要网络能连接到MHN中心服务器即可 MHN简介: MHN是一个开源软件,它简化了蜜罐的部署,同时便于收集和统计蜜罐的数据。用ThreatStream( http://threatstream.github.io/mhn/ )来部署,MHN使用开源蜜罐来收集数据,整理后保存在Mongodb中,收集到的信息也可以通过web接口来展示或者通过开发的API访问。 MHN能够提供多种开源的蜜罐,可以通过web接口来添加他们。一个蜜罐的部署过程很简单,只需要粘贴,复制一些命令就可以完成部署,部署完成后,可以通过开源的协议hpfeeds来收集的信息。 搭建好后,访问3000端口,就会看到默认的世界地图准备就绪(没有数据来源的情况下空白状态): 首先看MHN中心服务器支持的蜜罐终端的类型(还是很丰富):