Beta

打杂


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于

常见web安全漏洞

发表于 2016-04-27   |   分类于 security   |  

这几天Strtus2的安全漏洞掀起了热烈讨论。随着网络越来越深入生活,以及新的互联网产品不断推出,安全形势更加严峻了。

我所在的企业,自从成立了安全部门之后,我也不断的收到了若干安全漏洞报告。

所接触到的漏洞主要有下面几种:

  1. XSS 跨站脚本攻击
  2. CSRF 跨站请求伪造
  3. SQL注入
  4. 权限绕过

1. XSS

本章节代码在Chrome50下测试

很普遍的漏洞,危害非常大。

XSS分两种,反射型xss和存储型xss。两者不同支出就在于是否会持久化到服务器。

但是不管哪种,本质上是用户在页面动态文本的地方输入了js,并且被浏览器解析执行。

js可以获取cookie等敏感数据。因为http无状态,身份识别通过cookie来传递。

阅读全文 »

ping和traceroute

发表于 2016-02-23   |   分类于 network   |  

1. ping

通常我们是用ping命令来检查网络是否联通

阅读全文 »

我的2015书单

发表于 2016-02-18   |   分类于 book   |  

2015年3月份买了kindle pw2,kindle功能真是单调,单调到没有播放音乐的功能。思考一下,读书是一件非常孤独的事情,保持简单,能让人沉浸到读书状态中。

2015年各种各样的书读了不少,必须要回顾一下了,下文部分介绍摘自亚马逊等网站介绍。

1. 经济管理&商业&社会学

《创业维艰》

2015年上半年各种O2O创业公司,望京扫码一条街风靡一时,到了下班年,哀鸿一片,不少创业公司烧完投资人的钱就死掉了。

创业从来都不简单,即使现在国内的创业投资市场很火热,创业成功依然很难,《创业维艰》作者现身说法,讲述其创业路上的各种艰难抉择。

下面几个问题,在书中都有写到:

如何解雇高管?

应该从好朋友的公司挖人吗?

该不该招资深人士?

顺境CEO/战时CEO分别该怎么办?

如何规划你的企业文化?

你该卖掉你的公司吗?

《从0到1:开启商业与未来的秘密 》

2015年在互联网创业圈大火的一本书。

阅读全文 »

Http协议、浏览器缓存缓存机制, 304 ,200 from cache

发表于 2016-02-17   |   分类于 protocol   |  

http缓存一直有在用,也听前辈讲过,今天打算自己总结一下,把不同情况都试了一遍,发现网上有些内容并不全对。

首先,我们知道,浏览器缓存后,在浏览器的network中看到的状态码分两种情况,304和200 OK from cache

本文的测试均是在Chrome下进行的,服务器是nginx,首先看下nginx的配置

1
2
3
4
5
6
7
8
9
10
location / {
ssi on;
ssi_silent_errors on;
ssi_types text/shtml;
expires 1d;
add_header Cache-Control max-age=86400;
etag on;
root C:/dev/nginx/html/;
index index.html index.htm;
}

304

304是协商缓存,表示请求了服务器,但是内容没有变化,从浏览器本地缓存取数据

304 是通过按浏览器上的刷新按钮或者按F5刷新得到的状态码

从下图可以看到,headers中有etag属性,etag是资源的唯一标识,如果内容变了,etag会改变

Last-Modified 也是用于协商缓存的Last-Modified的值表示内容最后修改时间

浏览器请求已经缓存的资源时,会把etag和Last-Modified发送给服务器,服务器对比,如果浏览器发送来的和服务器的值相等,说明内容没有变化,服务器返回304给浏览器,浏览器从缓存读取数据


阅读全文 »

一个错误的sql语句引发的思考--Mysql AND逻辑运算

发表于 2016-02-15   |   分类于 mysql   |  

今天讨论一个错误的update语句

1
UPDATE test SET id=2 AND dd=2 WHERE id=1;

这个语句竟然可以被执行,当然,执行结果是错误的。

猜测是被解析成如下语法了

1
UPDATE test SET id=(2 AND dd=2) WHERE id=1;

然后进行试验,发现果然是这样的。

对于这样sql语句,执行后的数据,id只可能为0或者1,因为mysql中,and的运算结果只有0和1

在mysql中,and的左右两侧如果都是非0和非NULL值的话,返回1,否则返回0


  • 表结构
    1
    2
    3
    4
    5
    6
    7
    CREATE TABLE `test` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `dd` tinyint(1) DEFAULT NULL,
    `nickname` varchar(12) DEFAULT '1',
    PRIMARY KEY (`id`),
    KEY `idx_1` (`nickname`)
    ) ENGINE=InnoDB

And逻辑

根据mac地址查询网卡生产厂商

发表于 2016-02-15   |   分类于 common   |  

根据MAC地址,查询网络设备所属生产厂商(ieee.org)
1 网卡MAC码是由全球惟一的一个固定组织来分配的,未经认证和授权的厂家无权生产网卡。
每块网卡都有一个固定的卡号,并且任何正规厂家生产的网卡上都直接标明了卡号,
一般为一组12位的16进制数。

查询地址:
https://regauth.standards.ieee.org/standards-ra-web/pub/view.html#registries

比如我的网卡信息

此页面还提供了全部厂商列表供下载。

linux查询mac地址

输入ifconfig -a命令

HWaddr 后面即是mac地址, 如下:

eth0 Link encap:Ethernet HWaddr 06:F8:98:0F:13:1D

阅读全文 »

JavaScript事件冒泡和事件捕捉

发表于 2016-01-08   |   分类于 js   |  

我们知道html页面是dom树形结构,有层级关系,而我们在dom节点上触发的事件,是会向上或者向下传递的。

从外层向内传递叫事件捕获,从内向外传递叫事件冒泡

js事件捕获和冒泡

阅读全文 »

AngularJS之定时器 $interval

发表于 2016-01-06   |   分类于 js   |  

今天写代码需要用一个定时器来轮询状态,根据状态来设置ng-class不同的样式。发现在angularjs中写定时器的话,虽然modle更新了,但是视图并没有变化,经过不懈的尝试,找到了解决办法, 使用angularjs内置的$apply来主动告知angularjs进行视图更新,点击查询$apply介绍。

下面是示例

  • html

    1
    2
    3
    <div ng-class="{true: 'progress', false: 'hide'}[visible]">
    内容
    </div>
  • js

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    app.controller('dataCtrl', function($scope, $http, $filter) {
    $scope.process = 0;
    $scope.visible = false;//
    var updateHide = function() {
    if ($scope.process >= 100) {
    $scope.visible = false;
    }
    };
    setInterval(function() {
    $scope.$apply(updateHide);
    }, 500);
    // some code
    }
阅读全文 »
123…8
Meng

Meng

60 日志
15 分类
37 标签
RSS
© 2014 - 2016 Meng
由 Hexo 强力驱动
主题 - NexT.Pisces