cookie

CI中SESSION的用法及其注意

荒凉一梦 提交于 2020-02-02 03:18:52
销毁 Session 要清除当前 session: $this->session->sess_destroy(); 注意: 此函数应该是最后被调用的。即使闪出变量已不再有效。如果你只想让某几项而不是所有项被销毁,请使用 unset_userdata(). Session 类 Session类可以使用户在浏览您的网站时,维持他们的状态并跟踪他们的行为。 Session类将每个用户的session信息序列化(serialize)后存储到到cookie中(并同时进行加密)。您还可以将session数据存储到 数据库 中来增强安全性,但是这时要求存储在用户cookie中的session ID值能与数据库中存储的用户session ID值相匹配。程序默认只在cookie中存储session。如果您在要在数据库中存储session的话,需要按照下面指示的方法,在您的数据库中创建需要的数据表。 注意: Session类并不使用PHP本身的session,而是使用类自己的session,这样做,可以给开发者提供更大的弹性。 初始化 Session Sessions会在每个页面载入后开始运行,所以session类必须首先被初始化。您可以在控制器中初始化,也可以在系统中自动加载(译者注:在autoload.php设定)。session类的绝大部分都会在后台运行,所以初始化session时

DVWA靶机-sql自动注入

大憨熊 提交于 2020-02-01 23:10:44
1. 使用dvwa靶机进行sql注入实战(注:当前靶机安全级别为low) 打开sql漏洞,发现输入不同的数字会返回不同的信息, 先尝试手工判断是否存在sql注入 一般sql注入语句像这样,我们构造的是后面两个单引号里面的内容 select * from users where userid='*' 输入: ' or 1=1# 前面一个单引号闭合了查询语句自带的第一个单引号, or 1=1 使得结果永远为真, #则是用来让查询忽略后面连接的内容,--和#的作用相同 看到它的确返回了全部内容 这次我们来试试它会不会报错 提交报错以后出现: 结合上面的内容我们可以判断这里是存在注入点的 2. 这里我的sqlmap是已经装好的 sqlmap需要python环境才能运行(kali自带sqlmap,或者也可以windows环境下安装) windows下安装教程: https://blog.csdn.net/lijia111111/article/details/54755009 cmd里面打开sqlmap 这里先别急着粘贴url,因为登陆dvwa靶机需要用户名和密码,所以会有cookie的存在。 我们需要浏览器插件查看cookie(推荐使用火狐浏览器) 这些就是当前页面的cookie,需要放到sqlmap注入语句后面 python sqlmap.py -u"http://192.168.147

跨站脚本攻击XSS

穿精又带淫゛_ 提交于 2020-02-01 22:45:08
1、XSS简介 跨站脚本(cross site script)为了避免与样式css混淆,简称xss。xss是一种经常出现在web应用的计算机安全漏洞,也是web中最主流的攻击方式。是指恶意攻击者利用网站没有对用户提交数据进行转义处理或者过滤不足的缺点,进而添加一些代码,嵌入到web页面中去,使别的用户访问都会执行相应的嵌入代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式 XSS攻击的危害包括: 1、盗取各类用户账号,如机器登录账号、用户网银账号、各类管理员账号 2、控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力 3、盗窃企业重要的具有商业价值的资料 4、非法转账 5、强制发送电子邮件 6、网站挂马 7、控制受害者机器向其它网站发起攻击 2、原理解析 XSS主要原因: 过于信任客户端提交的数据! XSS主要分类: 反射型XSS攻击(reflected xss),又称为非持久型跨站点脚本攻击,它是最常见类型的攻击。漏洞产生的原因是攻击者注入的数据反映在响应中。一个典型的非持久型xss包含一个带xss攻击向量的链接,即每次攻击需要用户的点击。 存储型XSS(stored xss)又称为持久型跨站点脚本,他一般发生在xss攻击向量(一般指XSS攻击代码)存储在网站数据库,当一个页面被用户打开的时候执行。每当用户打开浏览器,脚本执行

window.open(url, name, features, replace)

倖福魔咒の 提交于 2020-02-01 18:22:42
window.open 先见百度详解: http://baike.baidu.com/view/613278.htm 语法:window.open(url, name, features, replace) 下面是网友总结用法: 1、最基本的弹出窗口代码 <script LANGUAGE="javascript"> <! -- window.open ('page.html') --> </script> 因为这是一段javascripts代码,所以它们应该放在<script LANGUAGE="javascript ">标签和</script> 之间。<!-- 和 -->是对一些版本低的浏览器起作用,在这些老浏览器中不会将标签中的代码作为文本显 示出来。要养成这个好习惯啊。 window.open ('page.html') 用于控制弹出新的窗口page.html, 用单引号和双引号都可以,只是不要混用。 这一段代码可以加入HTML的任意位置,<head>和</head>之间可以,<body>间</body >也可以,越前越早执行, 尤其是页面代码长,又想使页面早点弹出就尽量往前放。 2、设置弹出窗口 下面再说一说弹出窗口的设置。只要再往上面的代码中加一点东西就可以了。 我们来定制这个弹出的窗口的外观,尺寸大小,弹出的位置以适应页面的具体情况。 <script LANGUAGE=

搭建高可用的rabbitmq集群

萝らか妹 提交于 2020-02-01 15:05:52
一、搭建集群各节点 准备五个节点,分别为: 192.168.154.150 192.168.154.151 192.168.154.152 192.168.154.153 192.168.154.155 这里为方便操作,只准备了前三个节点. rabbitmq集群镜像模式构建 1) 停止各节点服务 rabbitmqctl stop 2) 文件同步 选择76、77、78任意一个节点为Master(这里选择76为Master),也就是说我们需要把76的Cookie文件同步到77、78节点上,进入76的/var/lib/rabbitmq目录下,把/var/lib/rabbitmq/.erlang.cookie文件的权限修改为777.然后把.erlang.cookie文件远程复制到其它各个节点.最后把所有cookie文件的权限还原为400即可. scp .erlang.cookie 192.168.154.151:/var/lib/rabbitmq/ 说明:scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令 3) 集群节点启动 rabbitmq-server -detached lsof -i:5672 4) slave节点加入集群中 77节点 rabbitmqctl stop_app rabbitmqctl join_cluster [--ram] dongge02

会话技术——Session

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-01 14:31:55
目录 什么是Session? 实现原理 Session的操作 Session持久化处理 Session的细节 Session 什么是Session? 跳转到目录 Session是 服务器端技术 ,服务器在运行时可以为每一个用户的浏览器创建一个独享的session对象,由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服务器中的其他web资源时,其他web资源再从用户各自的session中取出数据为用户服务.总而言之,将 数据保存在服务器 . Session的特点 session 用于存储一次会话的多次请求的数据 session 数据存储在服务器中 session 可以存储任意类型,任意大小的数据 Session的原理 跳转到目录 Session其本质就是一个会话Cookie( 浏览器关闭后,Session就失效了 ) 使用Cookie和Session发送请求的内容 Session的操作 跳转到目录 一、 获取Session对象 request.getSession(true) : 获取Session对象,如果没有Session对象,直接创建一个新的返回,缺省值 request.getSession(false) : 获取Session对象,如果没有返回null request.getSession()

撩课-Web大前端每天5道面试题-Day7

六眼飞鱼酱① 提交于 2020-02-01 02:47:03
1. 你能描述一下渐进增强和优雅降级之间的不同吗? 定义: 优雅降级(graceful degradation): 一开始就构建站点的完整功能, 然后针对浏览器测试和修复 渐进增强(progressive enhancement): 一开始只构建站点的最少特性, 然后不断针对各浏览器追加功能。 优雅降级和渐进增强都关注于同一网站 在不同设备里不同浏览器下的表现程度。 区别: “优雅降级”观点认为应该针对那些最高级、 最完善的浏览器来设计网站。 而将那些被认为“过时”或有功能缺失的浏览器下 的测试工作安排在开发周期的最后阶段,并把测试 对象限定为主流浏览器(如 IE、Mozilla 等)的 前一个版本。 “渐进增强”观点则认为应关注于内容本身。 总结: "优雅降级"就是首先完整地实现整个网站, 包括其中的功能和效果. 然后再为那些无 法支持所有功能的浏览器增加候选方案, 使之在旧式浏览器上以某种形式降级体验 却不至于完全失效。 "渐进增强"则是从浏览器支持的基本功能开始, 首先为所有设备准备好清晰且语义化的html及 完整内容, 然后再以无侵入的方法向页面增加无 害于基础浏览器的额外样式和功能。 当浏览器升级时, 它们会自动呈现并发挥作用。 2. 请说说浏览器内核的组成? 浏览器的结构: 用户界面(UI) - 包括菜单栏、工具栏、地址栏、 后退/前进按钮、书签目录等,也就是能看到的除

每天刷Web面试题(前10天汇总)

时间秒杀一切 提交于 2020-02-01 02:46:24
一、算法题部分 1. 如何获取浏览器URL中查询字符串中的参数? function getParamsWithUrl(url) { var args = url.split('?'); if (args[0] === url) { return ""; } var arr = args[1].split('&'); var obj = {}; for ( var i = 0; i < arr.length; i++) { var arg = arr[i].split('='); obj[arg[0]] = arg[1]; } return obj; } var href = getParamsWithUrl('http://www.itlike.com?id=1022&name=撩课&age=1'); console.log(href['name']); // 撩课 2. 写一个深度克隆方法(es5)? /** * 深拷贝 * @param {object}fromObj 拷贝的对象 * @param {object}toObj 目标对象 */function deepCopyObj2NewObj(fromObj, toObj) { for(var key in fromObj){ // 1. 取出键值对 var fromValue = fromObj[key]; // 2.

前端开发面试题及答案

↘锁芯ラ 提交于 2020-02-01 02:44:58
一、你能描述一下渐进增强和优雅降级之间的不同吗? 如果提到了特性检测,可以加分。 检测浏览器,渐进增强就是让牛b的浏览器的效果更好,优雅降级就是让2b的浏览器在功能ok的情况下效果一般。 二、线程与进程的区别 一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。 从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。 三、请解释一下什么是“语义化的 HTML”。 语义化的好处:1:去掉或样式丢失的时候能让页面呈现清晰的结构: html本身是没有表现的,我们看到例如<h1>是粗体,字体大小2em,加粗;<strong>是加粗的,不要认为这是html的表现,这些其实html默认的css样式在起作用,所以去掉或样式丢失的时候能让页面呈现清晰的结构不是语义化的HTML结构的优点,但是浏览器都有有默认样式

前端开发面试题及答案

若如初见. 提交于 2020-02-01 02:44:29
一、你能描述一下渐进增强和优雅降级之间的不同吗? 如果提到了特性检测,可以加分。 检测浏览器,渐进增强就是让牛b的浏览器的效果更好,优雅降级就是让2b的浏览器在功能ok的情况下效果一般。 二、线程与进程的区别 一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。 从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。 三、请解释一下什么是“语义化的 HTML”。 语义化的好处:1:去掉或样式丢失的时候能让页面呈现清晰的结构: html本身是没有表现的,我们看到例如<h1>是粗体,字体大小2em,加粗;<strong>是加粗的,不要认为这是html的表现,这些其实html默认的css样式在起作用,所以去掉或样式丢失的时候能让页面呈现清晰的结构不是语义化的HTML结构的优点,但是浏览器都有有默认样式