1、HttpOnlyHttpOnly最早由微软提出,并在IE6中实现,至今已经逐渐成为一个标准。浏览器将禁止页面的javascript访问带有HttpOnly属性的Cookie。严格来说,HttpOnly并非为了对抗XSS,HttpOnly解决的是XSS后的Cookie劫持攻击。PHP设置带HttpOnly属性Cookie的方法是使用自带的setcookie函数:setcookie('PHPSESSID', '79ce945e3bfd1917919e63a7ddbfe385', null, null, null, null, true);最后一个参数是设置httponly属性,执行后服务器会发送如下设置cookie的头:Set-Cookie:PHPSESSID=79ce945e3bfd1917919e63a7ddbfe385; path=/; HttpOnly2、输入检查常见的Web漏洞如XSS、SQL注入等,都要求攻击这构造一些特殊字符,这些特殊字符可能是正常用户不会用到的,所有输入检查就有存在的必要了。输入检查,在很多时候也被用于格式检查。例如网站注册使用的用户名,会被要求只能用字...
 发布日期: 2015-07-27    分类: 其他   浏览量: 4649
1、定位执行效率较低的sql语句通常有两种方法。一种是慢查询日志,用--log-slow-queries[=file_name]启动时,mysql会记录所有执行时间超过long_query_time秒的sql语句的日志文件。 long_query_time参数单位时秒,精度可以精确到微秒,默认情况下管理语句和不使用索引进行查询的语句是不会记录的,如果要记录这两类sql语句可以用--log-slow-admin-statements和log_queries_not_using_indexes来控制。还有一种方法就是使用show processlist命令查看当前mysql在进行的线程,包括线程的状态,是否锁表等,实时的查看sql的执行情况,同时对锁表操作进行优化。2、通过explain分析低效sql的执行计划 explain命令可以获取mysql的执行计划。执行如下命令:EXPLAIN SELECT * FROM `user` WHERE `uid`=1会显示:         id: 1   select_type: SIMPLE         table: user        ...
 发布日期: 2015-07-26    分类: MySQL   浏览量: 3657
服务器端:package main import (     "bufio"     "bytes"     "fmt"     "net"     "os"     "strconv"     "time" ) var User map[string]*net.TCPConn func main() {     var tcpAddr *net.TCPAddr     var tcpListen *net.TCPListener     var tcpConn *net.TCPConn     var err error     User = make(map[string]*net.TCPConn)     //监听端口     tcpAddr, err = net.ResolveTCPAddr("tcp4", ":5000")     if err != nil {         fmt.Println(err)         os.Exit(1)     }     //监听     tcpListen, err = net.ListenTCP("tcp4", t...
 发布日期: 2015-06-30    分类: Go   浏览量: 3724
这是一份写HTML的样板,每写一个新的HTML页面都可以用它来初始化。<!-- HTML5. Use tags like <article>, <section>, etc. See: http://www.sitepoint.com/web-foundations/doctypes/ --> <!doctype html> <html>   <head>     <meta charset="utf-8">     <!--     Ask IE to behave like a modern browser     See: https://www.modern.ie/en-us/performance/how-to-use-x-ua-compatible     -->     <meta http-equiv="x-ua-compatible" content="ie=edge">     <title>My Site</title>   ...
 发布日期: 2015-06-24    分类: HTML/CSS   浏览量: 3484
pjax=ajax + pushState。像github上面点击一个链接都会有个load的动画,github用的就是pjax加载的这些链接内容。这里用jQuery的pjax库:jquery-pjax.js,github地址:https://github.com/defunkt/jquery-pjax最基础的用法:$(document).pjax('a', '#pjax-container')会在本页面的所有a链接上面启用pjax,内容替换的容器是id为pjax-container的元素,也可以是一个class的元素。上面这句话会使页面上所有的a链接都启用pjax,但是如果我只想部分链接启用呢?我们可以给a元素加上data-pjax属性,然后选择器写上a[data-pjax],这样就只有类似<a data-pjax href=""></a>的链接才会启用pjax。pjax函数的原型:$(document).pjax(selector, [container], options)第一个参数selector是一个字符串,代表一个可以被点击的元素。第二个参数是选择器字...
 发布日期: 2015-06-24    分类: Javascript   浏览量: 4339
yii2的程序功能测试yii2集成了Codeception测试框架,所以是官方支持程序的单元测试,功能测试和验收测试。yii2的基本应用模板和高级应用模板都支持这三种测试。测试文件是在tests目录,很明显。这里主要是介绍怎么来用框架提供的这个测试功能。第一步安装Codeception:composer global require "codeception/codeception=2.0.*" composer global require "codeception/specify=*" composer global require "codeception/verify=*"第二步是添加全局命令执行命令composer global status,命令的输出应该会有一个目录,类似如下输出:Changed current directory to <directory>把<directory>/vendor/bin添加到系统环境变量path里面,这样做的目的是可以全局执行codecept命令。第三部是安装依赖包在项目根目录,就是有composer.json文...
 发布日期: 2015-06-02    分类: PHP   浏览量: 6525
文章是翻译自Go官方博客的文章:http://blog.golang.org/errors-are-values随便翻译的一下,给自己参考,有需要的同学也可以参考参考,翻译的不好的地方或者难以理解的地方请参考原文。本人英语本身也不怎么样!所有有可能会有理解错误,用词不当,语言组织不当的地方,请见谅!该怎么样去处理错误(errors),是go程序员特别是刚学go的人之间的一个共同讨论点。讨论经常会随着下面这段程序出现的次数越来越多而变成抱怨。if err != nil {     return err }我们最近扫描了所有我们能够找到的开源项目,发现重复出现这段代码的次数是每页或者每两页只出现了一次,是不是比你想象中的要少很多。然而,如果你还是感觉必须到处写if err != nil,那一定是哪里出了问题,并且会认为问题很明显是出在go自己身上。很不幸,这是错误的,而且这很容易去纠正。假如一个新手go程序员去提问这发生了什么,“怎么会只有一个错误处理?”,其实你应该学习这种模式,并且保持它。在其他编程语言里面,一种可能方式是使用try-catch块或者其他类似原理的方式去处理错误(err...
 发布日期: 2015-05-24    分类: Go   浏览量: 4220
go有一个官方包来操作json格式的数据,包位于encoding/json。JSON编码func Marshal(v interface{}) ([]byte, error)返回用JSON编码v之后的值。类型转换规则:boolean值会编码成JSON的boolean;float,integer会编码成JSON的number;string值会编码成UTF-8JSON字符串,无效的字节用Unicode替换,"<"和">"编码成"\u003c" and "\u003e","&"编码成"\u0026";array和slice会编码成JSON array,[]byte编码成base64字符串,空的slice编码成null;struct会编码成JSON object。空值是指false,0,空指针或者空interface,任何长度为0的array,slice,map或者string。json对象默认的key字符串是strut的字段名,也可以自己指定名字,方法是在每个字段最后用“json”标签指定名字:比如:type Personal struct {     Name stri...
 发布日期: 2015-05-20    分类: Go   浏览量: 10091
yii2.0的ActiveRecord是可以嵌套子查询的。比如从一个子查询里面筛选数据。首先实例化出来一个Query对象,代表子查询。$subQuery = new \yii\db\Query(); $subQuery->from('tableA')->where(['>=', 'id', 10]);假如UserModel是一个AR:$list = UserModel::find()->from(['tmpA' => $subQuery])->all();from里面传数组,数组KEY是临时表的名字,值是Query对象。同样的如果是AR的join里面也要用到子查询,参数方式是一样的。...
 发布日期: 2015-04-24    分类: PHP   浏览量: 9478
CORS全称是Cross-Origin Resource Sharing(跨域资源共享),是W3C推荐的跨域请求方案。同时也需要服务器端程序的配合。作用主要是以下这些跨站http请求:1、跨域的AJAX请求。2、网络字体(Web Font),就是css里面 @font-face定义的字体,可以在服务器端配置哪些域允许跨站载入这些TrueType字体。3、WebGL的纹理(texture)文件。4、用HTML5的drawImage函数画到canvas里面的图片。场景示例简单的请求一个简单的跨域请求像下面描述的那样:1、只使用了GET, HEAD 或者POST。假如POST用来向服务器发送数据的话,HTTP头的Content-Type字段值是application/x-www-form-urlencoded, multipart/form-data,或者text/plain三个中的一个。2、没有设置自定义的HTTP头,就是哪种以X-开头的,比如X-Modified。例如域http://localhost的需要请求http://www.example.com的内容 :我们可以很容易的在本地通...
 发布日期: 2015-04-23    分类: 其他   浏览量: 7674