不是抽象的漏洞,而是本质复杂性

原则6.4 不仅关注接口,同样要关注实现。

说明:这个原则看似和“面向接口”编程思想相悖,但是实现往往会影响接口,函数所能实现的功能,除了和调用者传递的参数相关,往往还受制于其他隐含约束,如:物理内存的限制,网络状况,具体看“抽象漏洞原则”。

http://local.joelonsoftware.com/mediawiki/index.php?title=Chinese_%28Simplified%29&oldid=9699

摘:

抽象能帮你解决大多数情况,提高你的工作效率,但是剩下的一公里问题,仍然需要你花费更多时间和精力去了解并解决。

这并非抽象的无力,你肯定不会反对“针对接口编程”这条原则,而是抽象本身解决不了本质复杂性,这里的本质复杂性就是链表的实现方法,随机访问与添加移除的平衡问题。在我们无法找到更好的链表实现方法来平衡随机访问与添加移除之前,这个本质复杂性就不是抽象能够解决的。

http://www.blogjava.net/killme2008/archive/2013/10/30/308942.html

抽象能帮你解决大多数情况,提高你的工作效率,但是剩下的一公里问题,仍然需要你花费更多时间和精力去了解并解决。

时间: 2024-10-20 22:48:14

不是抽象的漏洞,而是本质复杂性的相关文章

【译文】抽象漏洞法则

翻译 :邹永胜 欢迎访问网易云社区,了解更多网易技术产品运营经验. 互联网上有一个很关键的部分,你每天都依赖于它,它处于TCP协议中,它是互联网的基本组成部分之一. TCP协议是可信赖的传输层协议.这就意味着你采用TCP去发送数据,不会存在数据混乱或丢失的情况. 我们日常中的很多事情都在使用TCP协议,例如浏览网页或者发送邮件.每一封邮件能够稳定的到达正是由于TCP的可靠性.尽管其中有许多垃圾邮件. 作为比较,另外一个不可靠的传输数据的协议称为 `IP`.没有人能够保证你发送的数据能够达到,即使

zergRush (CVE-2011-3874) 安卓内核漏洞成因分析

部分内容参考自http://www.cnblogs.com/daishuo/p/4002963.html zergRush是我接触的第一个CVE漏洞,该漏洞影响安卓2.2-2.3.6版本系统.CVE-2011-3874描述得很明白,这个漏洞的本质是"use after free". 漏洞存在于/system/bin/vold这个root身份的系统程序.具体地,vold调用了libsysutils.so,真正有问题的是这个 so.对应源码在/system/core/libsysutils

第5章 创建型模式—抽象工厂模式

1. 抽象工厂的定义 (1)提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类 ①只需各要知道创建一系列对象的接口,而无需知道具体使用的是哪一个实现 ②这一系列对象是相关或相互依赖的,也就是说既要创建对象,还要约束它们之间的关系. ③一系列对象是构建新对象所需要的组成部分,并且对象之间相互有约赖.如电脑由CPU和主板等组成,但CPU的针脚数和主板提供的插口必须是匹配的,否则无法组装. (2)产品族和产品等级 ①产品族:在抽象工厂模式中,产品族是指由同一个工厂生产的,位于不同产品等

百度全系APP SDK漏洞–WormHole虫洞漏洞

0x00 我们以百度地图v8.7.0为例来分析百度蠕虫漏洞,apk下载地址为https://github.com/jltxgcy/AppVulnerability/Baidu_Maps_v8.7.0.apk. 使用Android Killer来打开这个apk,Android Killer下载地址为http://pan.baidu.com/s/1jGQUzwa. 我们先讲述如何在代码层利用这个漏洞,然后再分析其原理. 百度蠕虫漏洞利用代码地址: 0x01 1.首先要安装百度地图v8.7.0的apk

zergRush (CVE-2011-3874) 提权漏洞分析

最近(终于)转Android了,2011年著名的zergrush是接触的第一个ROOT漏洞.虽然它已经过气了,只影响Android 2.2 - 2.3.6,但觉得还是有必要记录一下分析所得. 市面上各种ROOT工具基本都包含zergrush,大多是开源的zergRush.c直接编译而来.已有的分析文章: tomken_zhang,漏洞 — zergRush,漏洞 — zergRush (补充) Claud, Android提权代码zergRush分析 分析内容集中在zergRush.c的代码结构

缓冲区溢出分析第08课:MS06-040漏洞研究——动态调试

前言 经过上次的分析,我们已经知道了MS06-040漏洞的本质,那么这次我们就通过编程实现漏洞的利用. 编写漏洞利用程序的框架 这里我使用的是VC++6.0进行编写,需要将包含有漏洞的netapi32.dll文件与工程文件放置在同一个目录下.程序如下: #include <windows.h> typedef void (*MYPROC)(LPTSTR, ...); int main() { char Str[0x320]; char lpWideCharStr[0x440]; int arg

Bash远程代码执行漏洞分析

 今日爆出一个Bash的RCE漏洞,威力巨大.看了看老外的分析,觉得有必要写一写自己对这个漏洞的理解. 首先,问题起因于一个命令ENV. 原型: env [OPTION]... [NAME=VALUE]... [COMMAND [ARGS]...] Man是这么说的: Display, set, or remove environment variables,Run a command in a modified environment. 我的理解是使用env命令的key=value,首先会

POI解析excel的漏洞(CVE-2014-3574)

一.概述 最早的时候,java开发人员在操作excel的时候,用的最多的框架应该是poi.jxl.随着office的不断发展,office2007开始支持openXML的协议,后续陆续出现了新的框架支持操作office,如docx4j等.openXML使得数据的结构.组成更加透明,可以通过一定的操作看到内部完整的结构,如果仔细研究内部的属性,还可以进行更深层次的操作.当然,有利有弊,这也在一定程度上带来了麻烦,因为文件可以随意的更改内部的组成,在一定程度上给相关系统造成麻烦. 二.excel20

看好你的门-验证机制被攻击(5)-“记住我”功能的常见漏洞

首先需要声明,本文纯属一个毫无远见和真才实学的小小开发人员的愚昧见解,仅供用于web系统安全方面的参考. 1. 简单说明 当我们登陆某个网站时,在登陆的旁边会有一个"记住我" 的复选框,这个登陆时的用户名和密码 就是一种状态,这个记住我是怎么实现的呢?其实就用利用的是cookie,当我们选择了"记住我"以后,浏览器会将用户名保存在浏览器的cookie中,我们下次登陆的时候,就会自动的去找cookie了. 浆糊传说:这种漏洞在非常多的大互联网公司中都出现过.不经历过惨