摘要: cookie是存储在浏览器端,session是服务器端 cookie是有时间限制的,分会话cookie和持久cookie,如果不设置时间,那周期就是创建到浏览器关闭为止.这种是会话cookie,一般保存在内存中 如果设置了过期时间,浏览器就会把cookie保存在硬盘中. Session是在服务端保存 阅读全文
posted @ 2018-05-09 17:00 Esiarp 阅读(1072) 评论(0) 推荐(0)
摘要: 假设有了数据库,创建表 go中操作数据库与python不一样,go没有提供数据库驱动,但提供了接口,我们可以根据接口开发驱动,或是使用第三方库 先来看Mysql数据库的 sqlite3操作与上面代码基本一致.也需要引入第三方库,在MYSQL中使用?号传递数据,而PostgreSQL是通过$1,$2这 阅读全文
posted @ 2018-05-08 11:46 Esiarp 阅读(191) 评论(0) 推荐(0)
摘要: 要使表单能够上传文件,第一步就是添加form的enctype属性,enctype属性有如下三种情况: 阅读全文
posted @ 2018-05-07 13:43 Esiarp 阅读(133) 评论(0) 推荐(0)
摘要: 对xss的防护方法结合在两点上输入和输出,一是严格控制用户表单的输入,验证所有输入数据,有效监测到攻击,go web表单中涉及到.二是对所有输出的数据进行处理,防止已成功注入的脚本在浏览器端运行. 在Go中的可以使用html/template包过滤HTML标签 阅读全文
posted @ 2018-05-07 11:17 Esiarp 阅读(700) 评论(0) 推荐(0)
摘要: 开发Web的一个原则就是,不能信任用户输入的任何信息,所以验证和过滤用户的输入信息就变得非常重要 必填字段 数字 转换数字和正则匹配 对于性能的话要避开正则,正则会有个匹配时间,多个匹配速度会慢,但服务器强劲则没关系. 匹配中文 匹配英文 匹配邮箱 手机号码 下拉菜单的判断 复选框选择不同的 身份证 阅读全文
posted @ 2018-05-06 01:20 Esiarp 阅读(242) 评论(0) 推荐(0)
摘要: package main import ( "fmt" "html/template" "log" "net/http" "strings" ) func sayhelloName(w http.ResponseWriter,r *http.Request){ //访问主体回应 r.ParseForm() //解析url传递的参数,对于POST则解析响应包的主体 //如果没有调用P... 阅读全文
posted @ 2018-05-05 17:56 Esiarp 阅读(856) 评论(0) 推荐(1)
摘要: package main import ( "fmt" "net/http" "strings" "log" ) func sayhelloName(w http.ResponseWriter, r *http.Request) { r.ParseForm() //解析参数,默认是不会解析的map[url_long:[111 222]] fmt.Println(r.Form) ... 阅读全文
posted @ 2018-05-04 14:48 Esiarp 阅读(365) 评论(0) 推荐(0)
摘要: 第一步安装go环境apt-get install golang-go(显示出错,go版本apt安装太低,apt-get purge golang-go卸载后手动安装,必须1.8.3以上) 还需将/usr/local/目录中的go目录删除 rm -rf gowget https://dl.google 阅读全文
posted @ 2018-05-04 14:21 Esiarp 阅读(629) 评论(0) 推荐(0)
摘要: HTTP请求包(浏览器信息) 我们先来看看Request包的结构, Request包分为3部分,第一部分叫Request line(请求行), 第二部分叫Request header(请求头),第三部分是body(主体)。header和body之间有个空行,请求包的例子所示: GET /domain 阅读全文
posted @ 2018-05-04 12:20 Esiarp 阅读(122) 评论(0) 推荐(0)