;

代码: .imgview_inner{height: 500px; display: -webkit-box; display: -webkit-flex; display: flex; -webkit-box-align: center; -webkit-align-items: center; align-items: center; -webkit-box-pack: center; -webkit-justify-content: center; justify-content: center; } <div class="imgview_inner"><img src="http://gameweb-img.qq.com/gad/20170317/phphgAjtN.1489739479.jpg"></div>

flex实现图片垂直居中 2017年4月25日
;

知识点: 1.多窗口浏览器(firefox、chrome)便捷的同时也带来了一些问题,因为多窗口浏览器新开的窗口是具有当前所有会话的。 即我用IE登陆了我的Blog,然后我想看新闻了,又运行一个IE进程,这个时候两个IE窗口的会话是彼此独立的,从看新闻的IE发送请求到Blog不会有我登录的cookie;但是多窗口浏览器永远都只有一个进程,各窗口的会话是通用的,即看新闻的窗口发请求到Blog是会带上我在blog登录的cookie。 2.Get请求伪造 博客删除一般是采用get请求,后面加上文章id号,所以如果我们能构造一个连接带有删除的请求和id,同时用户已经在浏览器上登陆了博客,那么会利用自带cookie来实现跨站请求的伪装。 例如某篇文章的操作链接如下: post.php?post=1391&action=trash&_wpnonce=2cf4aa198b //移至回收站 post.php?post=1391&action=untrash&_wpnonce=b783a7a116 //还原 post.php?post=1391&action=delete&_wpnonce=2f51a98293 //永久删除 注意到末尾的’_wpnonce=2cf4aa198b’的随机字符…

CSRF漏洞剖析 2017年4月24日
;

代码排查无误后,猜测为服务器时间不准确导致 <?php echo date("Y/m/d/").date("h:i:sa"); ?> //data为php内置函数,因此显示的是服务器时间 <?php echo get_the_time(‘Y/n/j/’).get_the_time(‘G:i:s’); ?> //get_the_time为wordpress自定义函数因此显示的为文章发表的时间 新发表一篇文章查看,两个时间相差近10小时,确定问题所在。 解决办法:服务器时间为UTC,因此将网站时区为:协调世界时(UTC)

刚刚发表的文章时间显示却为8小时前 2017年4月24日
;

如果您在cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击。 PHP5设置: setcookie($name, $value, $expire, $path, $domain, $secure, $httponly); 最后一个参数为HttpOnly属性

设置HttpOnly防止XSS攻击 2017年4月24日
;

方法一: 将用户的认证信息保证在一个cookie中,具体如下: 1.cookie名:uid。推荐进行加密,比如MD5(‘站点名称’)等。 2.cookie值:登录名|有效时间Expires|hash值。hash值可以由”登录名+有效时间Expires+用户密码(加密后的)的前几位 +salt”,salt是保证在服务器端站点配置文件中的随机数。 这样子设计有以下几个优点: 1.即使数据库被盗了,盗用者还是无法登录到系统,因为组成cookie值的salt是保证在服务器站点配置文件中而非数据 库。 2.如果账户被盗了,用户修改密码,可以使盗用者的cookie值无效。 3.如果服务器端的数据库被盗了,通过修改salt值可以使所有用户的cookie值无效,迫使用户重新登录系统。 4.有效时间Expires可以设置为当前时间+过去时间(比如2天),这样可以保证每次登录的cookie值都不一样,防止盗用者 窥探到自己的cookie值后作为后门,长期登录。 方法二: 每个用户登录之后生成一个随机的GUID,然后把GUID存在数据库里面(也可以考虑使用Redis,把用户信息和随机 GUID以KEY-VALUE方式存储 GUID-用户信息,存储时设置超时时间,比如20分钟,每次验证用户信息都自动延长20分 钟。如果…

如何保证Cookie自动登录的安全性 2017年4月24日
;

格式: console.log("%c要显示的字符串","css样式"); 示例代码 console.clear(); console.log("%c ", "border-top: 4px dotted #dadada; font-size: 42px;"); console.log("%chttp://willless.com", "font-size: 42px; color: #fff; text-shadow: 0 1px 0 #eaeaea, 0 2px 0 #dadada, 0 3px 0 #bababa, 0 4px 0 #b0b0b0, 0 5px 0 #a0a0a0, 0 6px 1px rgba(0,0,0,.1), 0 0 5px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.3), 0 3px 5px rgba(0,0,0,.2), 0 5px 10px rgba(0,0,0,.25), 0 10px 10px rgba(0,0,0,.2), 0 20px 20px rgba(0,0,0,.15);"); console.log("%c ", &qu…

对console.log的信息添加样式 2017年4月24日
;

HTTP协议头注射漏洞原理 以下情况中会出现HTTP协议头注射漏洞: 1. 数据通过一个不可信赖的数据源进入Web 应用程序,最常见的是HTTP 请求。 2. 数据包含在一个HTTP 响应头文件里,未经验证就发送给了Web 用户。 其中最常见的一种Header Manipulation 攻击是HTTP Response Splitting。 为了成功地实施Http Response Splitting 盗取,应用程序必须允许将那些包含CR(回车,由%0d 或\r 指定)和LF(换行,由%0a 或\n 指定)的字符输入到头文件中。 攻击者利用这些字符不仅可以控制应用程序要发送的响应剩余头文件和正文,还可以创建完全受其控制的其他响应。 <?php $location = $_GET[‘some_location’]; header("location: $location"); ?> 假设在请求中提交了一个由标准的字母和数字字符组成的字符串,如”index.html”,那么包含此cookie 的HTTP 响应可能表现为以下形式: HTTP/1.1 200 OK … location: index.html … 然而,因为该位置的值由未经验证的用户输入组成,所以仅当提交…

Header注入 2017年4月24日
;

大多数人对于XSS的原理有一个基本认识,这里不再重复,只给出一个能够演示其原理的完整样例。 1 角色分配 有XXS漏洞的网站,IP地址172.16.35.135,PHP为开发语言 受害访问者,IP地址172.16.35.220,浏览器为IE11 黑客的数据接收网站,IP地址172.16.2.192,PHP为开发语言 2 源码实例 2.1 漏洞网站 存在漏洞的URL为:http://172.16.35.135/xss_demo.PHP <?php session_start(); ?> <!doctype html> <html> <head> <title>XSS demo</title> </head> <body> <form> <input style="width:300px;" type="text" name="address1" value="<?php echo $_GET["address1"]; ?>" /> <input type="submit" value=&qu…

XSS跨站脚本攻击过程最简单演示 2017年4月18日
;

1、信息收集 1.1/ Whois信息–注册人、电话、邮箱、DNS、地址 1.2/ Googlehack–敏感目录、敏感文件、更多信息收集 1.3/ 服务器IP–Nmap扫描、端口对应的服务、C段 1.4/ 旁注–Bing查询、脚本工具 1.5/ 如果遇到CDN–Cloudflare(绕过)、从子域入手(mail,postfix)、DNS传送域漏洞 1.6/ 服务器、组件(指纹)–操作系统、web server(apache,nginx,iis)、脚本语言 1.7/ More…通过信息收集阶段,攻击者基本上已经能够获取到网站的绝大部分信息,当然信息收集作为网站入侵的第一步,决定着后续入侵的成功。 2、漏洞挖掘 2.1/ 探测Web应用指纹–Discuz、PHPwind、Dedecms、Ecshop… 2.2/ XSS、CSRF、XSIO、SQLinjection、权限绕过、任意文件读取、文件包含… 2.3/ 上传漏洞–截断、修改、解析漏洞 2.4/ 有无验证码–进行暴力破解 2.5/ More…经过漫长的一天,攻击者手里已经掌握了你网站的大量信息以及不大不小的漏洞若干,下一步他们便会开始利用这些漏洞获取网站权限。 3、漏洞利用 3.1/ 思考目的性–达到什么样的效果 3.2/ 隐藏,破坏性–根据探测到的应用指纹寻找对应的EXP攻击载荷或者自己…

网站安全手册:入侵网站普遍的手法/流程 2017年4月18日
;

指纹识别的核心原理是通过正则表达式匹配特征码或匹配文件的md5值,收集指纹的主要原则是程序独有的不会因环境和配置不同而改变的特征。

web应用程序指识别中的指纹收集 2017年4月18日
;

1.开启域名隐私保护(暴露注册人信息) 2.关闭php的报错提示(暴露服务器物理路径) 3.网站备份文件不要用web.zip,www.zip,wwwroot.rar,.bak,.swp,.old等的通用名(暴露网站程序) 4.根目录下的readme.text,license.txt,help.txt,robots.txt等文件适当修改(同样暴露网站程序及路径) 5.临时测试文件避免命名为phpinfo.php,test.php,info.php等

网站安全总结 2017年4月18日
;

HTTP请求方法并不是只有GET和POST,只是最常用的。据RFC2616标准(现行的HTTP/1.1)得知,通常有以下8种方法:OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE和CONNECT。 官方定义 HEAD方法跟GET方法相同,只不过服务器响应时不会返回消息体。一个HEAD请求的响应中,HTTP头中包含的元信息应该和一个GET请求的响应消息相同。这种方法可以用来获取请求中隐含的元信息,而不用传输实体本身。也经常用来测试超链接的有效性、可用性和最近的修改。 一个HEAD请求的响应可被缓存,也就是说,响应中的信息可能用来更新之前缓存的实体。如果当前实体跟缓存实体的阈值不同(可通过Content-Length、Content-MD5、ETag或Last-Modified的变化来表明),那么这个缓存就被视为过期了。 简而言之 HEAD请求常常被忽略,但是能提供很多有用的信息,特别是在有限的速度和带宽下。主要有以下特点: 1、只请求资源的首部; 2、检查超链接的有效性; 3、检查网页是否被修改; 4、多用于自动搜索机器人获取网页的标志信息,获取rss种子信息,或者传递安全认证信息等

HTTP请求方法 之 HEAD 2017年4月18日
;

无意中查看源代码看到: <meta name=’robots’ content=’noindex,follow’ /> 意识到是后台设置导致 找到,设置-阅读-对搜索引擎的可见性,把勾去掉 保存以后,在看源代码,以上meta消失 提示:搜索引擎将本着自觉自愿的原则对待WordPress提出的请求。并不是所有搜索引擎都会遵守这类请求。

wordpress网站一直没有被收录原因 2017年4月17日
;

前提: 1.当元素设置box-sizing:border-box; 2.同时设置了上下padding 问题: height等于line-height 就无法实现垂直居中 修正: line-height=height-padding*2

box-sizing 影响垂直居中 2017年4月14日
;

修改WP根目录的.htaccess文件,在底部加入以下代码 <Files ~ “^wp-login.php”> Order deny,allow Deny from all Allow from 195.196.0.1/255.255.0.0 (可选,里面写你的ip段) Allow from X.X.X.X (这里写你常用的ip,如果是多个就覆盖几行) </Files> 保存文件就没问题了,如果需要在其他ip登录,修改上面的地址即可。

通过htaccess阻止针对wp-login.php的攻击 2017年4月11日
;

蜜罐好比是情报收集系统。 蜜罐好像是故意让人攻击的目标,引诱黑客前来攻击。所以攻击者入侵后,你就可以知道他是如何得逞的,随时了解针对服务器发动的最新的攻击和漏洞。还可以通过窃听黑客之间的联系,收集黑客所用的种种工具,并且掌握他们的社交网络。

蜜罐技术 2017年4月11日
;

创建流程: 1.创建一个函数,当 WordPress 发现短代码的时候会调用此函数; function recent_posts_function() { query_posts(array(‘orderby’ => ‘date’, ‘order’ => ‘DESC’ , ‘showposts’ => 1)); if (have_posts()) : while (have_posts()) : the_post(); $return_string = ‘<a href="’.get_permalink().’">’.get_the_title().'</a>’; endwhile; endif; wp_reset_query(); return $return_string; } 2.通过设置一个唯一的名称来注册短代码; function register_shortcodes(){ add_shortcode(‘recent-posts’, ‘recent_posts_function’); } 3.把注册的函数绑定到Wordpress的action上。 add_action( ‘init’, ‘register_shortcodes’);

wordpress 短代码详解 2017年3月31日
;

slice() 把匹配元素集合缩减为指定的指数范围的子集。 <ul> <li>list item 1</li> <li>list item 2</li> <li>list item 3</li> <li>list item 4</li> <li>list item 5</li> </ul> $(‘li’).slice(2).css(‘background-color’, ‘red’);选中的是后面三个li元素。

jquery slice用法 2017年3月29日
;

echo $cat; $args = array( ‘orderby’ => name, //获取指定ID下的所有子级目录 ‘show_count’=> 1, ‘child_of’=>$cat ); wp_list_categories($args);

wordpress 获取同级目录 2017年3月24日
;
JSON.parse()和JSON.stringify()及toString 2017年3月21日
;

1:admin-ajax.php 前端页面: <script type="text/javascript"> jQuery.ajax({ type: ‘POST’, url: "<?php echo admin_url( ‘admin-ajax.php’ );?>", data: { action: ‘myajax_submit’ }, success: function(res) { console.log(JSON.stringify("–"+res)); } }); </script> 后端functions.php里面接受请求: add_action( ‘wp_ajax_nopriv_myajax_submit’, ‘myajax_submit’ ); add_action( ‘wp_ajax_myajax_submit’, ‘myajax_submit’ ); function myajax_submit() { $response = json_encode( array( ‘success’ => true ) ); header( "Content-Type: application/json" ); e…

wordpress函数 2017年3月21日
;

php文件可通过url直接被访问,暴露各种路径信息。 通过配置’.htpaccess’始终无法如愿。 苦恼之时,后来突然意识到是因为PHP开启了错误提示导致。 文件位置: /etc/php5/apache2/php.ini 修改 display_errors = On 为 display_errors = Off

关闭直接通过url访问php文件 2017年3月20日
;

https://codex.wordpress.org/Hardening_WordPress 15 Ways To Harden The Security Of Your WordPress Site

wordpress 安全 2017年3月17日
;

问题描述: 1,通过微信朋友圈链接点击进入网站,导航按钮点击失效。 2,跳转到其它页面再点击导航按钮功能却正常。 3,浏览器及微信web开发者工具内问题无法重现,一切功能正常。 4,css各种修改,位置调整及元素标签修改,问题依旧。 5,类似结构其它网站无此bug。 权宜之计: 通过把相关的js写到头部页面内,问题消失。 相关: 其它项目中也遇到在微信打开后一些奇怪的边框,通过调整z-index解决

微信朋友圈链接,导航按钮点击失效 2017年3月17日