优大网

分类存档: 未分类 ( 1 / 3)

office文件所对应的的 Content-type类型

摘自:https://www.jianshu.com/p/4b09c260f9b2

Grafana 的一些使用技巧

文章目录

  • 数值类型的常用指标含义
    • 总量误区
    • 误差
  • 模板变量
    • 模板变量的写法
    • 新建模板变量
    • 模板变量的隐藏玩法
  • grafana 面板编辑器
    • Metrcis
    • Legend
    • Display
  • 高级函数
    • 聚合单个查询的多条匹配曲线的总量 Combine -> sumSeries
    • 时间线迁移 Transform -> timeShift
    • 去除异常值 Filter -> removeAboveValue
    • 重命名函数
    • 多条曲线数值的聚合 Special -> groupByNode
    • 计算多个 Query 组成的成功率 Calculate -> asPercent
  • 其他
    • 报警
    • statsd 打点的限制
    • 后端查询 grafana 数据
    • 匿名模式
  • 最后

grafana 是一个开源的时序性统计和监控平台,支持例如 elasticsearch、graphite、influxdb 等众多的数据源,并以功能强大的界面编辑器著称。我们在前端监控方面引入 grafana 后取得了一些不错的反馈,但是很多用户由于之前没有接触过 grafana 经常会来询问 grafana 的相关问题,因此希望本文对大家在 grafana 使用方面有所帮助。

grafana 的权限分为三个等级:Viewer、Editor 和 Admin,Viewer 只能查看 grafana 已经存在的面板而不能编辑,Editor 可以编辑面板,Admin 则拥有全部权限例如添加数据源、添加插件、增加 API KEY。

对于普通用户来说,Viewer 权限已经足够,本文接下来的内容主要和 Editor 权限有关。由于篇幅有限,本文作为范例的数据源为 graphite,同时也只介绍最常用的 Graph 图表的配置方法。

数值类型的常用指标含义

  • count_ps
    • 每秒的数量
  • count
    • 每十秒的数量
  • mean_90
    • 去除最高10%的数据后的平均值
  • upper_90
    • 去除最高10%的数据后的最高值

总量误区

这里有一个常见的 grafana 误区,因为经常有用数值类型的 count_ps 来顺便获取每秒打点数量的情况,注意在这种情况下,一段时间内的打点总量需要使用 count_ps 的 avg 平均值来乘以这段时间的秒数来计算,而不是通过界面上的 Total 直接读取。

这是因为,在界面上一条曲线能够展示的点的数量是有限的,grafana 会根据你的窗口宽度来决定返回的点数,因为像一天这样的时间段肯定没办法在界面上展示每一秒的点,毕竟总量为86400个点就算带鱼屏也不可能挤得下。对于无法展示的点,grafana 默认是使用 avg 平均值的行为来修正返回点的值,举个栗子,如下图:

image

上图时间范围是一天,上部分为曲线面板的值,下部分为 面饼图表的值,并且上部分图标的曲线为 count 类型(十秒聚一次),可以看到 avg 平均值为 683,那么总量应该为 682 乘以 6 (如果是count_ps 这里则是60) 乘以 60 (一小时60分钟)再乘以 24 (一天24小时)得到589万,与图片中下部分的582万相近,因此上部分 total 的117万是一个完完全全让人误解的值,可以认为它毫无意义进而直接无视掉。

误差

上文中我们计算出来的589万和界面上的582万其实也有一点误差,不过这是可以接受的,因为 statsd 一般情况下是 UDP 的形式(它其实有 TCP 的形式),所以如果想要完全正确的数据,那么最好把打点相关的数据也入库,从数据库里后置查询出来的才是完全可靠。

模板变量

模板变量能够动态地控制面板中的查询语句,是十分重要的功能。经常可以在面板的左上角发现它们,如下图:

image

模板变量的写法

模板变量支持 $name[[name]] 的写法,针对 graphite 数据源主要使用前者,例如:stats.timers.fe.test.$key.count_ps

新建模板变量

grafana 界面上齿轮按钮 -> Templating -> 点击 New,即可出现类似如下的界面:

image

本段主要介绍 Query 类型的写法。

  • Name
    • 该变量的名称,不支持特殊字符例如$
  • Refresh
    • 可选NeverOn Dashboard LoadOn Time Range Change
    • 如果该变量的值经常动态增加的话则选 On Time Range Change,否则 On Dashboard Load 就足够了,Query 类型千万不要选 Never,否则变量只会在你点进来编辑变量时才会更新
  • Query
    • 查询语句,例如 stats.timers.fe.test.*
    • 编写时 grafana 不会触发请求,需要在输入框外面点击一下,查询到的值就会显示在下边了

模板变量中的 Query 其实也支持模板变量,例如stats.timers.fe.test.$key.* 这样的语句,会在 $key 变量变化时自动刷新值,是不是有一点 MVVM 的感觉。这个功能用来联动多个模板变量可以大幅度减少 grafana 一次查询的时间。

模板变量的隐藏玩法

模板变量甚至可以用在 grafana 的跳转中,这是连文档中都没有提及的一个隐藏玩法,在 Link 或者 Dashboard 里 URL 中任意位置填入 $name ,那么在用户点击该链接跳转时 grafana 同样会替换该变量来让你跳到正确的链接去。这和其他系统整合起来能够做到很不错的用户体验,例如跳转到 kibana 那边去查询日志。

kibana 和 grafana 的时间范围格式并不一样,可以使用这篇文章 中的 chrome 插件来解决。

另外,Custom 模板变量可以允许用户在变量下拉框中自行输入值,也是一个经常用到的值,配合模板变量会和当前链接中的 querystring 部分的var-${name} 同步,配合起来可以轻松地从第三方系统中跳转到正确的 grafana 面板中来

grafana 面板编辑器

以 Editor 权限的账号进入到任意面板中,点击某个图表继而点击小弹窗中的 Edit 按钮,即可进入图表的编辑器界面。对于编辑器本文只介绍图表的重要配置,Metrics,Legend 和 Display

Metrcis

image
  • 编辑模式
    • 上图箭头指向的 toggle editor mode 可以控制编辑模式,关闭则需要手动输入查询语句,开启则是如上图的可以在界面上动态增删改的模式。
  • 数据源
    • Panel data source 一定要选对,否则查不到对应的路径,并且很有可能冒出来 Mock 数据让人一脸懵逼。
image

开启动态编辑模式时可以在点击上图中每个框框,这时 grafana 会自动加载该位置在数据源中的值,并且你也可以在这里选择模板变量来动态控制。

image

点击尾巴上的加号,会冒出来对应数据源的函数,可以做一些高级的功能,这个也是本文下半部分的重点,稍后再做介绍。graphite 的函数比较多,其他数据源会少一些。

Legend

Legend 主要控制曲线的名称和值的展示,比较简单,这里列出一下他们的含义

  • As Table
    • 是否以表格形式展示
  • To the right
    • 是展示在图表右边还是在下面
  • Width
    • 默认不填会自动伸缩,否则强制限定宽度
  • Min
    • 面板时间段内的最小值
  • Avg
    • 面板时间段内的平均值
  • Total
    • 面板时间段内的值的总量,如上文所说获取数值类型的总量时这个 Total 是一个很让人误解的参数
  • Max
    • 面板时间段内的最大值
  • Current
    • 面板时间段内的当前值

Display

Display 控制图表的点和线的展示,有一些比较重要的参数

  • Draw Modes -> Lines
    • 是否绘制点之间的线段
  • Draw Modes -> Points
    • 是否绘制点
  • Hover info -> Mode
    • 悬浮面板上展示的方式,值为 All serires(展示该时间点的所有线段的值)和 single(只展示鼠标指着的那一条线段)
  • Hover info -> Sort Order
    • 悬浮面板上线条的排序,一般选择 Decreasing
  • Stacking & Null value -> Null value
    • 这个比较重要,需要根据点的密度来动态决定,如果点少很容易让人误解两个点中间也存在点。
    • 点多时,选择 connected
    • 点少时,选择 null

高级函数

以 graphite 为例子,打点路径中的 KEY 只支持大小写字母、数字、中划线和下划线,这会导致前端的路径(经常包含 # 和 :path)存不下来,因此我们只能提前转译,例如将 # 转译为 ANCHOR,将 :path 转译为 PATH ,再将 / 转译为 -,这样在变量模板中展示的就是比较怪异的前端路径,不过好在我们有函数,可以在界面上把它替换回来。

image

点击编辑界面 Metrics 面板中编辑模式的加号,添加 aliaSub 函数,并依此填入上图的三种的替换规则,在界面上就可以看到如下图的正常路径了:

image

aliaSub 只是其中一个简单的 alias 函数,用来处理曲线的名称,更多的函数是被用来处理单个查询的聚合、多条曲线的聚合、展示不同时间线、计算和过滤,本节会介绍其中一些经常用到的函数。

聚合单个查询的多条匹配曲线的总量 Combine -> sumSeries

例如,假设 stats_count.fe.test.* 有几十个匹配值,那么这个查询就会在图表中展示几十条曲线,此时如何获取所有曲线的总值呢?不需要在打点时多打一份总量数据,直接使用 sumSeries 函数即可,sumSeries(stats_count.fe.test.*)

时间线迁移 Transform -> timeShift

想要在这个时间段内同时展示前一天的的曲线?timeShift(Query, '-1d')即可

去除异常值 Filter -> removeAboveValue

如果数值类型中出现了异常的值,例如平均为 1秒 的情况下出现了几百万秒的情况,那么就可以通过众多的过滤函数在界面上直接过滤掉而不是去修改打点代码,removeAboveValue(Query, 10000)即可

重命名函数

  • alias
    • 直接重命名该曲线,参数为曲线名称
  • aliasByNode(4, 5, 6)
    • 将曲线命名为原名称的第4、5、6段
  • aliasSub
    • 正则替换名称中的某一段

多条曲线数值的聚合 Special -> groupByNode

sumSeries 函数只能简单地将多条数据的最终值加起来,如果不是末尾位置的就不行了,而且也不支持除了 sum 外的功能,例如 avg 平均,使用 groupByNode 就可以动态地对指定位置的多个数值类型进行聚合了,如下图:

image

计算多个 Query 组成的成功率 Calculate -> asPercent

假设我们有如下几条打点:

stats.timers.fe.test.error1.count
stats.timers.fe.test.error2.count
stats.timers.fe.test.error3.count
stats.timers.fe.test.success.count

此时想要计算 success 的成功比例,如何做呢?

在这种相较复杂的情况下,就不能只靠一个 Query 来解决了,首先我们创建两个 Query,如下:

stats.timers.fe.test.*.count (Query 序列号为 #A)
stats.timers.fe.test.success.count (Query 序列号为 #B)

再创建第三个 Query,值为 asPercent(#B, sumSeries(#A),顾名思义,首先将 #A 的查询聚合起来得到总值,再用 asPercent 来进行除法即可。

通过如上的几个例子,可以看到函数强大的功能,即使是很复杂的在以前需要用后端代码来实现的部分,都可以通过多条Query和多个函数的互相嵌套来在界面上简单地实现。

每个数据源都有对应的函数开发文档,例如 graphite。grafana 正是凭借着对众多数据源以及函数的支持,才能在一个网页界面上完成这么多强大的功能。

其他

报警

grafana 在 4.0 版本后增加了报警功能,不过 grafana 的报警属于数据源的后置查询,实时性不大能满足需求,我们公司有一个开源的 banshee ,就是为了解决这个问题。

banshee 使用了三西格马定律,支持基于阈值和趋势的报警,同时提供开放的 API 和 webhook 并默认集成了 Slack。banshee 和数据源位于同一个位置(statsd 的后端),因此可以保证时效性,也因为报警的独立性质所以对 grafana 版本没有任何要求。

statsd 打点的限制

grafana 依赖的如果是时序性数据库,那么每一个 KEY 都会对应一个文件来存储数据,例如 stats.timers.fe.test.* 相当于 stats/timers/fe/test 文件夹下的所有文件,因此必须注意打点路径不要有过多的组合,比如将省份和市作为 KEY 时的组合很容易就能占到 1G 以上的数据导致磁盘爆掉。

为了避免组合过多导致路径污染,请尽量保证每个 KEY 中格式化掉点,例如替换成下划线,另外打点路径可以尽量多加一点前缀,例如将stats.timers.fe.test.* 改为 stats.timers.fe.test.v1.* ,这样一旦污染后,清理数据时可以直接把 v1 整个文件夹删除而不是删除 test 这个根路径,用以保留你的历史正常的打点数据。

后端查询 grafana 数据

一般推荐使用 API KEY 来查询 grafana 的数据,Admin 权限账号可以在界面中生成上文三种权限的 API KEY,不过 grafana 默认会开启 Basic Auth,使用账号密码即可通过 grafana 的鉴权,例如http://${account}:${password}@${grafana_host}/api/org

当然,最好是拥有数据源的读权限来直接读取数据。

匿名模式

有时候用户确实没有 grafana 的账号,但他就是想看面板,怎么办?此时就得 grafana 的匿名模式出马了。

grafana 配置文件中有 auth.anonymous 配置段,enabled 控制开关,org_name 控制开启匿名模式的组织,org_role 控制匿名者的权限。组织开启匿名意味着非登录用户能够直接跳过 grafana 无权限地查询数据源,因此请保证数据源的安全,例如限定内网访问。

最后

本文介绍了 grafana 相对高级的一些使用技巧,除了可以看到 grafana 的强大功能以外,也应该注意到 grafana 只是一个时序性很强的统计监控平台,一些非时序性质的功能例如报错的聚合和报错的日志等应该交给更专业的去做,例如 sentry 和 ELK。

作者:easyhappy
链接:https://segmentfault.com/a/1190000013565079
来源:SegmentFault 思否
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

grafana之Variables变量的使用

介绍

Variables变量提供了用户和面板交互,并动态刷新面板的功能。不需要硬编码,不需要每次都修改SQL查询语句。变量的下拉菜单显示在面板的顶部,这样改变下拉菜单的值,即可改变变量的值,而且所有使用该变量的仪表板都会随着变量的改变而改变。

变量.png

变量(Variables)的定义:

在dashboard的设置中定义的变量,可以作为该dashboard的全局变量使用,如下图所示

定义.png

变量的表示符号。如:IDC表示IDC这个变量,使用的时候,直接使用$IDC就可以获取IDC变量的值。

新建变量:

点击new按钮,填充如下,

add.png

Type为变量的类型,总共有六种类型:Interval(时间间隔类),Query(查询类),Datasource(数据源类型),Custom(自定义类),Constant(常量类),Ad hoc filters(我也不知道啥玩意,未知类)

Type.png

这里我选用了常用类型:Query,数据源为已经设置的mysql数据源,然后直接填入mysql查询语句:

SELECT DISTINCT cluster FROM jdos_node_base WHERE idc =  '$IDC'

注:IDC为已经设置的变量,直接使用取值即可。

Refresh变量刷新方式

Refresh.png

Refresh是指变量的刷新方式,总共三种: Never,On Dashboard Load,On Time Range Change.
Never : 从来不刷新
On Dashboard Load:面板加载的时候,刷新一次
On Time Range Change:跟随面板刷新时间刷新该变量,面板的刷新设置在面板的右上角,如下

面板刷新.png

变量设置完成之后,下方会出现变量的值。
点击Add按钮,设置完成。
返回面板,是这样的,

image.png

可以看到机房和集群已经设置成功了。

变量的使用

添加仪表板,进入编辑仪表板,如下图,

仪表板的编辑.png

选择数据源,输入查询语句:

SELECT
  UNIX_TIMESTAMP(start_time) as time_sec,
  cpu_max as value,
  "cpu_max" as metric
FROM jdos_idc_info
WHERE $__timeFilter(start_time) AND cluster = "$Cluster" 
ORDER BY start_time ASC

这里的Cluster就是之前在Variables设置的变量,还是使用$符号取值。

选择不同的机房&集群就会自动刷新面板的值,因为改变机房&集群,变量的值也会同步改变。如下:

示例1.png

示例2.png

欢迎在下方评论交流。

作者:风吹散了的回忆
链接:https://www.jianshu.com/p/fe8bab704716
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Black Hat USA安全隐患盘点及黑客奥斯卡颁奖

摘要:Black Hat USA 2014已落下帷幕,这里带大家回顾会议中最值得关注的安全隐患,以及黑客奥斯卡奖Pwnie Awards的颁奖结果。

【编者按】Black Hat USA 2014已于8月2-7日在拉斯维加斯举行,会议汇聚了大量的全球知名安全专家。Black Hat安全技术大会是世界上最能够了解未来安全趋势的信息峰会,每届会议都可以称得上安全解决方案提供商前行的指引。本年度重点关注的安全领域又有什么不同?一年一度的黑客奥斯卡奖项又花落谁家,这里一起盘点。

以下为译文:

作为业内知名的信息安全会议,Black Hat 2014为各类解决方案提供商定义了一个明确的方向。 资深安全专家,Beyond Trust CTO Marc Maiffret指出,新兴技术一般是安全研究员关注的重点,会议上,大量利用新服务(或产品)漏洞窃取资源或进行其他危险攻击的途径被揭发,产业因此可以尽早的进行调整。本文着重盘点第十八届Black Hat上被揭露的安全漏洞,其中十个足以改变当下安全解决方案提供商的产品布局,并产生深远影响。

1. 数据库安全隐患——历时长久的攻防战

 

David Litchfield,一位英国的安全研究员,知名于揭露Oracle、微软等公司RDBMS软件中的巨大漏洞和结构缺陷。在Black Hat 2014上,David展示了Oracle旗舰数据库管理系统中存在的新漏洞。

该漏洞基于Oracle新版数据库12c中大肆宣扬的功能“数据校订(data redaction)”,这个功能被设计用于保护敏感数据。演讲中,David表示数据校订功能内含有大量安全漏洞,攻击者可以利用这些漏洞来绕过安全特性,并查看社会保险号、信用卡号等敏感信息。David表示,除下虚假的安全感,这个功能对企业没有任何帮助。

2. 云安全隐患——影响的不只是可用性

 

阿根廷顾问公司Bonsai Information Security创始人Andres Riancho通过详细研究指出,配置错误和基本漏洞都可能泄露托管于云上的应用程序数据、账户凭证等信息。Andres演示了AWS云基础设施可能被利用访问账户凭证、日志文件,并最终窃取用户账号。他还开发了一个专门的工具,这个工具可以自动浏览元数据,为攻击者访问敏感资源提供重要线索。他提倡安全专家与开发者共同审视当下的架构,及做好未来项目使用IaaS资源时的准备。

3. 医疗设备隐患——需要重点对待的领域

 

随着微型、强大的嵌入式系统投入到胰岛素泵、心脏起搏器等医疗设备,这个领域的安全就必须得到重点关注,因为这些设备越来越多的连接到互联网,在Black Hat 2014上漏洞管理厂商Rapid7研究员Jay Radcliffe指出。

Jay认为,漏洞可能被用于针对高风险个体,如政治领袖等。Jay专注于医疗设备安全,并成功黑了自己的胰岛素泵。Jay认为,这些设备面对一个非常普遍的问题——安全软件更新,因此无法更好地防御数据泄露。

4. POS系统隐患——Chip-And-PIN漏洞

 

Crowdome安全研究员兼NCR Retail企业安全架构师Nir Valtman表示,零售终端系统正面临内存搜读(memory-scraping)恶意软件的威胁,他表示可以在当下POS系统上运行的内存搜读恶意软件已非常普遍,其中更有许多已在大量目标数据窃取行动中得以验证,这些软件涉及身份认证、信息检索等多个功能。Nir研究过市面上大多数的付费安全系统,致力降低它们对系统性能的影响,他表示,取代只从技术方面着手,为零售商提供更多的信息服务同样重要。

期间,在另一个Black Hat会话上,剑桥大学密码学专家Ross Anderson表示,美国零售商最终将全部使用Chip-And-PIN,但是这项技术同样拥有漏洞和局限性。

5. Email安全隐患——雅虎加入谷歌行列

 

低等级数据加密或者无力及过时的安全协议在会议上被研究员多次提起,但其中影响力最大的报告无疑来自雅虎,该公司宣布将为用户提供一种终端到终端的加密技术。Google于今年6月发布了这项技术,提供了一个浏览器插件来加密数据。

世界范围内的雅虎和谷歌云服务用户都将享受到该技术带来的隐私和安全保障,其主要针对Edward Snowden揭秘的美国政府监控行为。雅虎CIO Alex Stamos表示,这项技术将在2015年放出。

6. 汽车软件隐患——岌岌可危的产业

 

Charlie Miller及Chris Valasek指出,当下,汽车制造厂商为敏感软件添加越来越多的监视及触发器,导致了愈来愈多的安全隐患。同时,他们还公布了关于汽车网络数据的分析,并确认了20个风险最高的模型。

车辆正在增加愈来愈多的无线能力,这无疑让远程攻击变为可能。Charlie当下是Twitter的安全工程师,他表示,他们正在寻找安全防御最好的汽车厂商。他们发现,2014 Jeep Cherokee和2015 Cadillac Escalade的风险最高,而2006 Ford Fusion和2010 Range Rover Sport看起来最为安全。

除此之外,Qualsys的研究员Silvio Cesare还展示了智能钥匙安全系统的缺陷,只使用一个简单的工具就可以锁车、开车,或者打开汽车的后备箱。

7. OTA升级导致了一系列的安全隐患


 

Accuvant Labs研究员Mathew Solnik和Marc Blanchou指出,网络运营商和设备制造商在更新手机、平板等无线设备时,无线机制中往往存在安全漏洞。该实验室研究员表示攻击者可以劫持运营商的远程控制能力,并在广泛的设备管理协议中利用。

此外,研究人员还指出运营商管理网络性能工具Carrier IQ可以监控手机上的所有流量。同时,这个设备管理工具让手机更容易被攻击。该应用可以用于运行远程代码,并绕过操作系统的本地防御。在全球范围内,70%到90%的手机内部都存在这个设备管理软件,由于这个易受攻击的OMA-DM协议,其他的设备,如笔记本、无线热点、物联网设备等也都存在风险。

8. USB安全隐患——威胁指数直线上升

USB一直是大量恶意软件的传播媒介,但是安全研究员Karsten Nohl和Jakob Lell指出USB隐患当下已经更加危险,未来借助USB的攻击将更具威胁。研究员演示了如何借助攻击监视网络流量,以及恶意软件在启动过程中如何夺取控制权。USB攻击非常难以察觉,因为当其被连接到笔记本或台式机时,它通常会被作为一个新设备,而恶意软件设计者可以轻易利用窃取来的证书欺骗设备制造商。

鉴于大多数的驱动硬件制造商都不会采取任何措施保护固件,同时恶意软件解决方案也不会扫描驱动固件以检查恶意行为,USB给了好事者无限可能。幸运的是,目前这种类型攻击在现实中尚未出现。

9. 能源管理平台——更大的威胁产生


来自德国IT安全公司ERNW的研究员揭露了Cisco Systems EnergyWise套件中的安全漏洞,他指出攻击者可以利用这些漏洞破坏机构的电力系统。该信息同样可以被恶意攻击者用来窃取数据,Cisco EnergyWise被设计用于读取每台机架的电压、功率、电流及每小时用电数,同时也会读一些温度、湿度、气流等数据。

10. 机场和飞机上的安全设备存在重大隐患


Qualys漏洞研究主管Billy Rios表示,机场中大量使用的扫描设备存在高危漏洞,攻击者可以利用这些漏洞访问和控制一些关键功能。Billy指出了Transportation Security Administration批准的两个设备,并要求厂商对底层软件做重大调整。Billy表示,在一个制造商的箱包扫描设备中,身份验证证书以纯文本格式存储,并缺少远程控制管理,其默认密码同样是一个非常大的隐患。

同时,IOI研究员Ruben Santamarta表示,攻击者可以通过飞机上提供的Wi-Fi和空中娱乐系统黑进飞机卫星通讯系统,从而控制飞机航线和安全系统。

在上述十个领域之外,监控录像机、Tor网络、路由器、NSA、酒店系统等也是研究员重点关注领域。

除此之外,2014黑客奥斯卡奖Pwnie Awards同样值得关注。本次Pwnie Awards共分8个类别,下面我们一起看各个类别漏洞提名以及最终得奖者(白色为提名,红色标注为最终获奖者),其中Heartbleed可以说是臭名昭著了:

最佳服务器端漏洞:

 

  • Abusing JSONP with Rosetta Flash (CVE-2014-4671)
  • Heartbleed (CVE-2014-0160)
  • IPMI: Sold Down the River
  • Embedded Device Hacking

 

最佳客户端漏洞:

 

  • Google Chrome Arbitrary Memory Read Write Vulnerability (CVE-2014-1705)
  • Heartbleed (CVE-2014-0160)
  • Pwn4Fun Safari vulnerability (CVE-2014-1300)
  • Goto Fail (CVE-2014-1266)

 

最佳提权漏洞

 

  • AFD.sys Dangling Pointer Vulnerability (CVE-2014-1767)
  • VirtualBox VM Breakout using 3D Acceleration (CVE-2014-0981)
  • Linux Futex Bug (CVE-2014-3153)
  • evasi0n iOS 7.0 jailbreak
  • Pangu iOS 7.1 Jailbreak

 

最具创新性研究

 

  • Hardware-assisted Memory Corruptions
  • Bypassing Windows 8.1 Mitigations using Unsafe COM Objects
  • RSA Key Extraction via Low-Bandwidth Acoustic Cryptanalysis
  • Windows 8 UEFI Secure Boot Bypasses
  • Hacking Blind

 

响应最烂的厂商

 

  • OpenCart PHP Object Injection Vulnerability
  • Fired, I?
  • AVG Remote Administration Insecure “By Design”
  • General Motors

 

最佳歌曲奖

 

  • “I’m a C I Double S P”
  • “Memory Corruption”
  • “Expect Us (We Are Anonymous)”
  • “Security Kate”
  • “The SSL Smiley Song”

 

最经典输家

 

  • Goto Fail
  • Heartbleed
  • Target Breach
  • (ISC)2 Optional Membership Fee

 

最经典破坏

 

  • Heartbleed (CVE-2014-0160)
  • Target Breach
  • Inputs.io
  • Mt. Gox

程序员经典幽默之恶搞对联

看了文章的标题,各位程序员千万别误会,程序员这种死板的生物怎么可能会写对联。下面的这些对联都非常有趣,看到别人这样恶搞自己也不免会淡淡的一笑,哎,苦逼的程序员。

对联一

上联:受苦受累起得比鸡还早。

下联:累死累活干得比驴还多。

横批:禽兽不如。

对联二

上联:一个项目两部电脑三餐盒饭之为四千工资搞得五脏俱损六神无主仍然七点起床八点开会处理九个漏洞十分辛苦。

下联:十年编码九年加班八面无光忙的七窍生烟到头六亲不认五体投地依旧四肢酸软三更加班只为两个臭钱一身孤苦。

横批:苦逼程序员。

对联三

上联:为系统而生,为框架而死,为debug奋斗一辈子!

下联:吃符号的亏,上大小写的当,最后死在需求上!

横批:杯具程序员。

对联四

上联:这个其实很简单。

下联:原理细节我不管。

横批:立马上线。

对联五

上联:我这儿没干啥它自己就好了。网络这事吧不明觉厉。

下联:你那儿不行吗我运行正常呀!需求想改呀十动然拒。

横批:细思恐极

对联六

上联:足不出户一台电脑打天下

下联:窝宅在家两只巧手定乾坤

横批:我最碉堡

 

java程序执行js脚本

public class ExecJs {

    /**
     * 记录日志类
     */
    private Logger log = Logger.getLogger(ExecJs.class);
    /**
     * 后置处理,执行js脚本
     * @param js
     * @throws Exception
     */
    public void execJs(String js, Map<String,Object> map) throws Exception {
        if (log.isDebugEnabled()) {
            log.debug("execJs js : " + js);
            Iterator<Entry<String, Object>> it = map.entrySet().iterator();
            while (it.hasNext()) {
                Entry<String, Object> entry = (Entry<String, Object>) it.next();
                log.info("EXECJS MAP : " + entry.getKey() + "---" + entry.getValue());
            }// end while
        }// end if
        if ("".equals(js) || js == null) {
            log.info("EXECJS ERROR : JAVASCRIPT CONTENT IS NULL");
        } else if(map == null || map.size()<=0){
            log.info("EXECJS ERROR : MAP CONTENT IS NULL");
        } else {
            // 获取脚本引擎
            ScriptEngineManager mgr = new ScriptEngineManager();
            ScriptEngine engine = mgr.getEngineByName("javascript");
            // 绑定数据
            ScriptContext newContext = new SimpleScriptContext();
            Bindings bind = newContext.getBindings(ScriptContext.ENGINE_SCOPE);
            bind.putAll(map);
            try {
                engine.setBindings(bind, ScriptContext.ENGINE_SCOPE);
                engine.eval(js);
            } catch (Exception e) {
                log.info("EXECJS EXCEPTION : EXECUTE JAVASCRIPT EXCEPTION", e);
                throw (e);
            }// end try
        }// end if
    }
}
调用例子
boolean flag = false;
String js = “var a = 1; var b = a + aKey;println(b);”;
Map<String,Object> map = new HashMap<String,Object>();
map.put(“aKey”, “aValue”);
try {
flag = execJs.execJs(js, map);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

Android 将取代 Linux 成为面向物联网的开放平台

美国 Web 和移动技术专家、手机群聊服务 GroupMe 事业发展主管史蒂夫•切尼 (Steve Cheney) 近日撰文,对 iOS 和 Android 的未来前景进行了展望。

我们已经进入了一个新的时代。在这个时代里,iOS 和 Android 的影响力已经渗透到移动领域以外。就整个生态系统的发展而言,有许多事情正在发生。移动领域中的进步和投资正在推动所有硬件和软件聚合产品前进的步伐,而硬件的创新活动也正在凭借这种顺风而不断加速。以下是有关这两个占据主导地位的平台未来前景的一些想法。

1、据市场研究公司 IDC 公布的最新报告显示,Android 操作系统在全球移动市场上所占份额正在大幅增长。但据美国市场研究公司 Asymco 的报告显示,Android 可能已经见顶,目前正处于下滑趋势中

那么,当传闻中的低价“iPhone 5C”智能手机上市时,将会有什么情况发生呢?到那时,全球形势可能发生重大的变动。

2、与移动战争相比,平台战争更加激烈。在物联网和电视(Chromecast)等非移动市场上,Android 正在取得重大的腾飞。到目前为止,Linux 一直都是这个领域中占据主导地位的操作系统,但现在 Android 正在争取到原本会基于 Linux 系统运行的一些嵌入式设计产品。

Android 正在有效地解除与无线运营商之间的耦合关系,将自己的影响力扩展到非移动市场上;与此同时,Android 还拥有丰富的相关工具和现有的开发者生态系统,这很可能将巩固其作为下个十年中具有决定性优势的开源操作系统的地位。对谷歌来说,这不仅是一种优势,同时也会带来意外后果。

3、对于非移动(插入式)设备来说,“Android + ARM”是一种“足够好”的模式,将在嵌入式操作系统的全球市场上赢得多数份额。英特热将无法渗透这个市场,除非设备需要很高的功率(比如说游戏平台或机顶盒等)。

其原因在于,Chromecas 的整体物料清单价格仅为 20 美元,而英特尔无法一边提供足够低的价格来与其展开竞争,同时还能保持较高的利润率。与此同时,苹果将继续利用垂直整合的非移动设备(如传闻中的 iTV 和 iWatch 等)来谋取利润。

4、对于(电池供电的)移动设备来说,情况则完全不同。移动计算不仅整体上的表现足够好,而且在能耗方面的表现也足够好。来自于苹果的硬件和软件整合产品很可能将在性能表现这一方面保持优势,这些产品将不断优化多核芯片以便取得更好的能耗表现,同时还将对其软件进行升级,最近苹果发布的 iOS 7 操作系统即可为证。

谁都不知道苹果是否在任何给定的时间段里都比竞争对手领先 6 个月或 18 个月,但预计该公司将拥有这一范围内的领先优势是合理的。较低的能耗需求将推动产品设计的聚合。

5、有传闻称,三星将转向使用 ARM 芯片,原因是三星认为自己的片上系统(SoC)需要与苹果的 A6/A7 和高通 Krait(均使用定制设计的核心)展开竞争。除了苹果和三星(可能会在不久以后实现 100% 的垂直整合)以外,高通也将使用定制设计的核心来持续改善能耗表现,从而赢得剩余的高端 OEM(原始设备制造商)。

而与此同时,联发科技 (Mediatek) 则将占据中低端市场。这就意味着,博通和英伟达等公司的空间有限,而英特尔在这一领域中则更是毫无机会可言。

6、在 Android 平台上,碎片化 (Fragmentation) 将继续对 Android 造成不利影响,但现在将会上升至新的层面,开始对生态系统造成影响。明天的苹果将不再只是与硬件/软件整合产品有关,而是与整个生态系统有关。软件是事先开发的,而硬件则是随后设计定制的,开发者拥有你的应用程序接口(API),所有这些都可协同运作。

从某种程度上来说,谷歌将可利用其控制下的产品来做到这一点,但非一致性将开始在谷歌并未开发的智能手机网络服务上对 Android 造成越来越大的损害。

7、iOS 操作系统中用于本地网络的新应用程序接口将变得很大——开始时使用案例将集中在美国市场上(随后是欧洲和日本市场),这将巩固苹果在美国高端市场上所占据的地位。当 iOS 7 发布时,所有应用程序接口将可向后兼容两年时间(也就是可兼容 iPhone 4S 及以后产品)。

这意味着,95% 的苹果用户将可彼此共享文件,并使用蓝牙/iBeacon 进行支付活动,而 Android 则将在服务层面上进入非一致性“战争”的第二回合。

在最新版本的 Android 操作系统推出一年以后,仅有 30% 的用户会升级(或能够升级)至新版本。开发者不会在 Android 应用中为 BTE 和本地 WiFi 共享开发网络/支付服务,原因是未来 18 个月时间里仅有一小部分 Android 手机将可支持新版本。

在 Google Play 应用商店中有一些二级市场应用,但其兼容性相当差。Android 4.3 添加了低功耗蓝牙支持功能,但由于仅有 30% 设备将在一年时间里可运行新版本的操作系统,因此其被用户采用的时间将比 iOS 慢 12 到 24 个月。

8、近场通信(NFC)已死,但令人感兴趣的并非这一方面,而是苹果如何才能利用蓝牙 4.0 和 WiFi 来复制近场通信功能。在支持这种功能的同时,还需要向后兼容至 iPhone 4S。蓝牙一直存在,但到目前为止还没有什么价值。

蓝牙 LE(也称为蓝牙 Smart)将改变所有事情。连接、配对和设备管理等将在 100% 的时间里持续运作,而蓝牙将成为行业领先的技术。无线广播将在我们周围无处不在,带来令人难以置信的移动使用体验。传闻中的苹果 iWatch 也将在发布以后与 iPhone 协同运作。

9、非一致性将在位置共享和支付应用中对 Android 和谷歌造成损害。当只有你一个人受到影响时,碎片问题并不重要;但当你的 Android 手机无法与其他手机进行通信,或无法在 POS 终端进行通信时,就很难为此找到借口。在 Android 平台上,蓝牙 LE 正在发展中,但非一致性对开发者来说将变成一个“杀手”,这意味着先进的本地发现/无线应用很少会支持 Android 系统。

这种事情已经在发生,举例来说,Tile 已经从 50 万名支持者那里筹集了 300 万美元左右的资金,而且不会支持 Android 系统。

10、对于本地商务来说,未来两年时间将是最令人激动的时刻之一。共享和网络服务以及原生蓝牙应用程序接口最终将激活一个生态系统,带来新的使用案例,催生销售点商务。

举例来说,蓝牙将可在用户使用手机进行柜台支付时提供支持,或者可在消费者走入商店时为发送至用户 iPhone 上的优惠券提供支持。Suare 已经推出了“Square 钱包”(Square Wallet) 产品,成为了这一领域中的先驱;而现在 iOS 正在为整个生态系统制定标准。这将有助于推动在线到离线商务活动的发展。

在这个领域中,Android 将落后 12 到 24 个月时间。这意味着,Android 和 iOS 平台上的本地商务活动将是电子商务的真实写照(Android 平板电脑/手机用户的购买量不及 iOS 用户)。如果这种情况在高端市场上发生,那么从智能手机销售量来看,苹果仍将在美国市场上占据优势。从全球范围来看,想要判断这种使用案例将如何发展则比较困难一些。

整体而言,很明显低端和高端市场正在分层,各个地区之间也正呈现出这种趋势。由于嵌入式平台目前几乎仅受移动技术影响的缘故,所有事情都正在发生变化。这提供了更多的证据,表明移动平台很可能不会追随以往计算平台的发展模式。

本文来自物联网智库 编辑张超

 

http://tech2ipo.com/61246

开源无线连网硬件:Flutter

Flutter——两片电路板,或者再加一根天线,就打造出一个很强力的无线连网组件,信号可覆盖一公里距离。对于想要 DIY 可连网、可与手机交互的智能设备的同学们,这款产品能够帮助节省很多精力和时间。该开源组件如图。

你可以使用 Flutter 将灯泡、小汽车、空调都变作可以用手机遥控的智能产品。

 

该产品正在筹资,捐资人资助该项目 20 美元,便可获得一件产品作为回报。

标签: flutter

创业者如何在Demo演讲上打动投资人?

摘要:Demo演讲中怎样才能打动投资人?一句话说清你的idea。在Google两位创始人Larry和Sergey向红杉资本寻求融资的时候,他们就一句话介绍了Google的独特与功能:Google一键通世界。你们感受一下。

作为记者,有时会参加一些创业创新类会议倾听创业者们的演讲。一般来说,主办方会给创业者10分钟的时间去展示自己的idea。在讲的过程中,有的创业者可能是因为长时间和机器交流,本身并不擅长言谈,演讲的时候显得特别腼腆和不自信。演讲结束后谁大家都云里雾里,在最后投资人提问的环节也答非所问。

也许有的投资人会在会后深入的了解你的产品,挖掘出它的潜力,但大部分投资人都不会有这个精力和时间。怎么才能在演讲中吸引到他们?如果你看过《乔布斯的魔力演讲》,应该会有所感触,虽然是乔布斯在新品发布上会的演讲技巧,但是很多其实是通用的。下面分享一些自己的观点(并不完全是书中所说):

 

时间控制。我们都知道,人的大脑会产生厌倦感,注意力时间是有限的,一般是在10分钟以内大家会认真听你的演讲(更甚的说法是六分钟),一旦超过那个时间点,大家的注意力可能都不在你那里了,打哈欠、看手表、玩手机、窃窃私语等,一片躁动。但是有些创业者就是无法在10分钟内讲完自己的内容,让人很是着急。

演讲思路。一般以讲故事的方式提出问题,然后介绍你的idea能解决这个问题。当然,不同的idea有不同的演讲思路,总的来说,你要能一直吸引大家的注意力,让他们关心你所讲的内容。

幻灯片尽量简洁。“复杂的最终境界是简单”,虽然微软给你提供了一级标题、二级标题、三级标题,但你最好不要用,否则幻灯片感觉像学术论文一样的复杂。堆砌文字只会让大家为了去理解幻灯片上大量的文字信息而分心,导致对你所讲的内容关心不多。最好一张幻灯片一个点。

把投资人都当“懒人”。投资人也是观众,而观众分为视觉、听觉、知觉性观众,反映到你的幻灯片就是,对听觉和视觉型观众,尽量用图片,因为图片更直观易理解,且能给人留下更长久的印象。对于必须要用文字的表达,也尽量简洁,比如只显示一个关键词,它可能是某个数据、年份或者游戏中某个角色,你要做的事情就是具体去解释这些关键词背后的意义给“懒惰”的观众。对于知觉性的观众,如果你做的是硬件产品,一定要与他们互动,让他们去触摸、把玩。

把投资人当小白。演讲中尽量避免专业术语,措辞尽量简单。关于这点,对比最强烈的的两个演讲是在2007年的Macworld大会上乔布斯和盖茨的。盖茨给人的感觉就是用一堆的专业术语自说自话,乔布斯给人的感觉是用通俗易懂的语言和观众互动。

让数字鲜活起来。对于一些枯燥的专业数据,你要去类比或者作比喻。比如形容IBM的超级计算机Roadrunner。如果给你说:这台计算机能力超强悍,运算速度达到了1petaflop/s,也就是每秒1000万亿次。是不是觉得有些懵?好像特厉害,但不知道到底有多厉害。如果这么给你形容:它的计算能力与10万台笔记本电脑计算能力的总和,是不是一下就觉得数字鲜活起来了?

idea的精简有力表达。你需要用一句话说清楚你idea能解决的问题和独特之处。在Google两位创始人Larry和Sergey向红杉资本寻求融资的时候,他们就一句话介绍了Google的独特与功能“Google provides access to the world’s information in one click”(Google一键通世界),正是这简单的表达,让投资人理解了Google技术的意义。

当然,上面这些只是一些通用的东西,演讲起来还得具体问题具体分析,但无论你介绍的是硬件、App、游戏或是开发工具,在去见投资人或者参加演讲之前,一定要彻彻底底弄清自己在做什么,不仅是为了融资,更是为了弄清你的这个idea到底有没有价值。

 

http://www.csdn.net/article/2013-07-17/2816253-startup-pitch

七个习惯可使你成功

习惯一:别指望谁能推着你走
如果你不向前走,谁又会推你走呢?因此,积极主动的态度,是实现个人愿景的原则。
我们常说:“我不会……,因为遗传……”、“我迟到,因为……”、“我的计划没完成,因为……”
我们总是在找借口或是抱怨,在不满中消耗自己的生命。而人类与动物的区别正是人能主动积极地创造、
实现梦想,来提升我们的生命品质。所以,有效能的人士为自己的行为及一生所做的选择负责,
自主选择应对外界环境的态度和应对方法;他们致力于实现有能力控制的事情,
而不是被动地忧虑那些没法控制或难以控制的事情;他们通过努力提升效能,
从而扩展自身的关切范围和影响范围。积极的心态能让你拥有“选择的自由”。
我们虽然不能控制客观环境,但我们可以选择对客观现实做何种反应。
积极的涵义不仅仅是采取行动,还代表对自己负责的态度。个人行为取决于自身,
而非外部环境,并且人有能力也有责任创造有利的外在环境。

习惯二:忠诚于自己的人生计划
我们经常在人生的道路上迷失方向,因徘徊和迷途消耗了生命。而高效能的人懂得设计自己的未来。
他们认真地计划自己要成为什么人,想做些什么,要拥有什么,并且清晰明确地写出,以此作为决策指导。
因此,“以终为始”是实现自我领导的原则。这将确保自己的行为与目标保持一致,并不受其他人或外界环境的影响。
我们将这个书面计划称之为“使命宣言”。任何一个存在的社会组织都需要“使命宣言”,任何一个企业或个人也不例外。
“使命宣言”需要阶段性地评估以及持续修正和改良。确立目标后全力以赴,就是我们所说的在正确的时间做正确的事,
并把事情做对。为什么很多人成功了反而感到失落?许多人在埋头苦干时,尚未发掘人生的终极目标,
只是为忙碌而忙碌着,未曾洞悉自己心灵深处的所欲所求,也不曾审视过自己的人生信条:
你到底要做什么?什么是你生命中最重要的?你生活的重心是什么?只有确立了符合价值观的人生目标,
才能凝聚意志力,全力以赴且持之以恒地付诸实现,才有可能获得内心最大的满足。

习惯三:选择不做什么更难
每个人的时间都是有限的,所以要做重要的事,即你觉得有价值并对你的生命价值、最高目标具有贡献的事情;
要少做紧急的事,也就是你或别人认为需要立刻解决的事。消防队的最大贡献应是做好防火工作,而不只是忙于到处救火。
因此,“要事第一”是自我管理的原则。有效能的人只会有少量非常重要且需立即处理的紧急、危机事件,
他们将工作焦点放在重要但不紧急的事情上,来保持效益与效率的平衡。“有效管理”是把最重要的事放在第一位的重点管理。
先由领导决定什么是重点后,自己掌握住重点并时刻把它放在第一位,以免被感觉、情绪或冲动左右。
要想集中精力于当前的要务;就必须先排除次要事情的牵绊,要勇于说“不”。

习惯四:远离角斗场的时代
懂得利人利己的人,把生活看作一个合作的舞台,而不是角斗场。一般人遇事多用二分法:非强即弱,非胜即败。
其实,世界给了每个人足够的立足空间,他人之得并非自己之失。因此,“双赢思维”成为人们运用于人际领导的原则。
我们从小就参与各种比赛、考试,培养了一种你赢我输、你死我活的竞争心态。试想一下,谁又甘心在竞赛中认输呢?
树立双赢思维就是要在人际交往中不断寻求互利,以达成双方都满意并致力于合作的协议计划。
具有双赢思维的人,往往有三种个性品格:正直、成熟和富足心态。他们忠于自己的感受、价值观和承诺;
有勇气表达自己的想法及感觉,能以豁达体谅的心态看待他人的想法及体验;相信世界有足够的发展资源和空间,人人都能共享。
利人利己观念的形成是以诚信、成熟、豁达的品格为基础的。豁达的胸襟源于个人崇高的价值观与自信的安全感,
所以不怕与人共名声、共财势,从而肯尝试无限的可能性,充分发挥创造力和宽广的选择空间。

习惯五:换位思考的沟通
如果一位眼科医生为病人配眼镜,他先摘下自己的眼镜让病人试戴,其理由是:
“我已经戴了10多年,效果很好,就给你吧,反正我家里还有一副。”那么,谁都知道这是行不通的。
如果医生还说:“我戴得很好,你再试试,别心慌。”在病人看到的东西都扭曲了的同时,
医生还反复说:“只要有信心,你一定能看得到。”那就真叫人哭笑不得了。我们常说遇事要将心比心。
因此,“知彼解己”是交流的原则。
这位医生尚未诊断就开处方,谁敢领教?但与人沟通时,我们常犯这种不分青红皂白、妄下断语的毛病。
因此我必须强调:“了解他人”与“表达自我”是人际沟通不可缺少的要素。首先要了解对方,
然后争取让对方了解自己,才是进行有效人际交流的关键,要改变匆匆忙忙去建议或解决问题的倾向。
要培养设身处地的“换位”沟通习惯。欲求别人的理解,首先要理解对方。人人都希望被了解,
也急于表达,但却常常疏于倾听。众所周知,有效的倾听不仅可以获取广泛的准确信息,还有助于双方情感的积累。
当我们的修养到了能把握自己、保持心态平和、能抵御外界干扰和博采众家之言时,我们的人际关系也就上了一个台阶。

习惯六:1+1可以大于2
统合综效是对付阻碍成长与改变的最有力途径。助力通常是积极、合理、自觉、符合经济效益的力量;
相反,阻力则消极、不合逻辑、情绪化和不自觉。不设法消除阻力的后果就等于向弹簧施加作用力,结果还是要反弹。
如果将双赢思维、换位沟通与统合综效原则整合,不仅可以化解阻力,甚至可以化阻力为助力,“统合综效”就是创造性合作的原则。

集思广益的合作威力无比。许多自然现象显示:全体大于部分的总和。不同植物生长在一起,根部会相互缠绕,
土质会因此改善,植物比单独生长更为茂盛;两块砖头所能承受的力量大于单独承受力的总和。
这些原理也同样适用于人,但也有例外。只有当人人都敞开胸怀,以接纳的心态尊重差异时,才能众志成城。

习惯七:过着身心平衡的生活
身心和意志是我们达成目标的基础,所以有规律地锻炼身心将使我们能接受更大的挑战,
静思内省将使人的直觉变得越来越敏感。当我们平衡地在这两方面改善时,则加强了所有习惯的效能。
这样我们将成长、变化,并最终走向成功。
人生最值得投资的就是磨练自己。生活与工作都要靠自己,因此自己是最值得珍爱的财富。
工作本身并不能给人带来经济上的安全感,而具备良好的思考、学习、创造与适应能力,才能使自己立于不败之地;
拥有财富,并不代表有永远的经济保障,拥有创造财富的能力才真正可靠。
以上这七个习惯是相辅相成的。前三个习惯在于我们本身,确立目标就要全力以赴,着重于如何进行个人修炼,
由依赖转向独立,实现“个人成功”;第四、五、六个习惯,即建立共赢、换位沟通、集思广益,
都将促进团队沟通与合作;而第七个习惯涵盖了前六个,督促我们从身心开始完善。通过培养这些习惯,
我们可以循序渐进地获得实质性的变革,成为真正的高效能人士。

较早的文章

Copyright © 2024 优大网 浙ICP备13002865号

回到顶部 ↑