- CVE-2016-10190 F 09-14
- Java序列化的几种方式以及序列 09-14
- 做一个程序员,实在是太酷了! 09-14
- 一篇文章读懂Java类加载器 09-14
- 浅谈服务架构Microservi 09-14
- 25个最基本的JavaScrip 09-14
- 金融行业常用数据库存在提权漏洞 09-14
- Java多线程同步的五种方法 09-14
- 学Java入门篇:Java类的基 09-14
- Java常犯5个错!!! 09-14
CVE-2016-10190 FFmpeg Http协议
发布者: super | 发布时间:2017-09-14
作者:栈长@蚂蚁金服巴斯光年安全实验室
————————
1. 背景FFmpeg是一个著名的处理音视频的开源项目,非常多的播放器、转码器以及视频网站都用到了FFmpeg作为内核或者是处理流媒体的工具。2016年末paulcher发现FFmpeg三个堆溢出漏洞分别为CVE-2016-10190、CVE-2016-10191以及CVE-2016-10192。本文对CVE-2016-10190进行了详细的分析,是一个学习如何利用堆溢出达到任意代码执行的一个非常不错的案例。
2. 漏洞分析FFmpeg的 Http 协议的实现中支持几种不同的数据传输方式,通过 Http Response Header 来控制。其中一种传输方式是transfer-encoding: chunked,表示数据将被划分为一个个小的 chunk 进行传输,这些 chunk 都是被放在 Http body 当中,每一个 chunk 的结构分为两个部分,第一个部分是该 chunk 的 data
Java序列化的几种方式以及序列化的作用
发布者: super | 发布时间:2017-09-14
本文着重讲解一下Java序列化的相关内容。
如果对Java序列化感兴趣的同学可以研究一下。
一.Java序列化的作用
有的时候我们想要把一个Java对象变成字节流的形式传出去,有的时候我们想要从一个字节流中恢复一个Java对象。例如,有的时候我们想要
把一个Java对象写入到硬盘或者传输到网路上面的其它计算机,这时我们就需要自己去通过java把相应的对象写成转换成字节流。对于这种通用
的操作,我们为什么不使用统一的格式呢?没错,这里就出现了java的序列化的概念。在Java的OutputStream类下面的子类ObjectOutput-
Stream类就有对应的WriteObject(Object object) 其中要求对应的object实现了java的序列化的接口。
为了更好的理解java序列化的应用,我举两个自己在开发项目中遇到的例子:
1)在使用tomcat开发JavaEE相关项目的时候,我们关闭tomcat后,相应的session中的对象就存储在
做一个程序员,实在是太酷了!
发布者: super | 发布时间:2017-09-14
原来,会编程是一件超“酷”的事情
当你点亮这项技能后
你就会发现,你能用它做的
远不止拿一份高薪Offer这么简单
-1-懒人的福音
开学抢课抢不上?写个脚本来抢吧
一键评教太麻烦?写个脚本来评吧
文档表格录入太繁琐?写个脚本来做吧
So easy~
还记得去年中秋,阿里巴巴做了一个公司内部抢月饼活动
几位牛X的程序员:咦?公司有月饼抢?写个脚本吧
然后几千盒月饼就“一键消失”了呢
原标题:一篇文章读懂Java类加载器
Java类加载器算是一个老生常谈的问题,大多Java工程师也都对其中的知识点倒背如流,最近在看源码的时候发现有一些细节的地方理解还是比较模糊,正好写一篇文章梳理一下。
关于Java类加载器的知识,网上一搜一大片,我自己也看过很多文档,博客。资料虽然很多,但还是希望通过本文尽量写出一些自己的理解,自己的东西。如果只是重复别人写的内容那就失去写作的意义了。
类加载器结构类加载器结构
名称解释:
根类加载器,也叫引导类加载器、启动类加载器。由于它不属于J浅谈服务架构Microservices
发布者: super | 发布时间:2017-09-14
什么是Microservices
Microservices是面向服务的架构(SOA)架构风格的一个变体,它将应用程序构建为松散耦合服务的集合。在微服务架构中,服务应该是细粒度的,协议应该是轻量级的。将应用程序分解成不同的较小服务的好处是它可以提高模块性,并使应用程序更易于理解,开发和测试。它还通过使小型自主团队独立开发,部署和扩展各自的服务来平行开发。它还允许单独服务的架构通过连续重构出现。基于微服务的架构可实现持续的交付和部署。
Monolithic的优点
25个最基本的JavaScript面试问题及答案
发布者: super | 发布时间:2017-09-14
1、使用 typeof bar === "object" 来确定 bar 是否是对象的潜在陷阱是什么?如何避免这个陷阱?
尽管 typeof bar === "object" 是检查 bar 是否对象的可靠方法,令人惊讶的是在Java中 null 也被认为是对象!
因此,令大多数开发人员惊讶的是,下面的代码将输出 true (而不是false) 到控制台:
varbar = null; console.log( typeofbar === "object"); // logs true!
只要清楚这一点,同时检查 bar 是否为 null,就可以很容易地避免问题:
console.log((bar !== null) && ( typeofbar === "object")); // logs false
要答全问题,还有其他两件事情值得注意:
首先,上述解决方案将返回 false,当 bar 是一个函数的时候。在大多数情况下,这是期望行为,但当你
金融行业常用数据库存在提权漏洞
发布者: super | 发布时间:2017-09-14
日前,由安华金和数据库攻防实验室(DBSLab)提交的又一国际数据库漏洞获得CVE认证,编号:CVE-2017-1508。该漏洞同样来自IBM旗下数据库品牌Informix数据库,目前IBM已确认该漏洞并发布更新版本。这是继CVE-2017-1310之后,安华金和提交并获认证的第2个国际数据库漏洞。
CVE对此漏洞评分为6.7分,属中高危等级。通过利用此漏洞,黑客可以将普通的数据库用户权限提升至root权限,取得访问和修改所有文件和数据的最高权限后,进一步控制服务器。Informix数据库在大型银行、保险公司、电信运营商等行业用户中广泛应用,漏洞的存在可能导致关键业务系统的数据库安全风险,请相关用户及时检查并更新版本。
漏洞小卡片
1、数据库所属厂商:IBM
2、发现漏洞的数据库版本:
涉及Informix 12.10.FC1—FC9最新版
3、漏洞详情
漏洞类型:本地提权型漏洞
威胁程度:CVSS Base Score: 6.7
漏洞ID
Java多线程同步的五种方法
发布者: super | 发布时间:2017-09-14
一、引言
前几天面试,被大师虐残了,好多基础知识必须得重新拿起来啊。闲话不多说,进入正题。
二、为什么要线程同步
因为当我们有多个线程要同时访问一个变量或对象时,如果这些线程中既有读又有写操作时,就会导致变量值或对象的状态出现混乱,从而导致程序异常。举个例子,如果一个银行账户同时被两个线程操作,一个取100块,一个存钱100块。假设账户原本有0块,如果取钱线程和存钱线程同时发生,会出现什么结果呢?取钱不成功,账户余额是100.取钱成功了,账户余额是0.那到底是哪个呢?很难说清楚。因此多线程同步就是要解决这个问题。
三、不同步时的代码
Bank.java
packagethreadTest; /** *@authorww * */publicclassBank{privateintcount = 0; //账户余额 //存钱 publicvoidaddMoney( intmoney){ count +=money; System.out.println(System.currentTimeMillis
学Java入门篇:Java类的基本内容
发布者: super | 发布时间:2017-09-14
import语句
为了能够使用某一个包的成员,我们需要在 Java 程序中明确导入该包。使用“import”语句可完成此功能。在 java 源文件中 import 语句应位于 package 语句之后,所有类的定义之前,可以没有,也可以有多条,其语法格式为:
import package1[.package2…].(classname|*);
java 运行时环境将到 CLASSPATH + package1.[package2…]路径下寻找并载入相应的字节码文件 classname.class。“*”号为通配符,代表所有的类。也就是说 import 语句为编译器指明了寻找类的途径。
例,使用 import 语句引入类程序:TestPackage.java
import p1.Test;
//或者 import p1.*;
public class TestPackage {
public static void main(S
Java常犯5个错!!!
发布者: super | 发布时间:2017-09-14
Java 开发中常见的 5 个错误,与君共「免」。
以下为译文:
1.Null 的过度使用
避免过度使用 null 值是一个最佳实践。例如,更好的做法是让方法返回空的 array 或者 collection 而不是 null 值,因为这样可以防止程序抛出 NullPointerException。下面代码片段会从另一个方法获得一个集合:
</>
List<String> accountIds = person.getAccountIds();
for (String accountId : accountIds) {
processAccount(accountId);
}
当一个 person 没有 account 的时候,getAccountIds() 将返回 null 值,程序就会抛出 NullPointerException 异常。因此需要加入空检查来解决这个问题。如果将返回的 null 值替换成一个空的 list,那么
