谈百度网盘“涉黄”遭警告:网盘内容审核有哪几种方式?

北京时间8月11日消息,有关部门接到群众举报百度网盘部分账号存在淫秽色情问题,经调查这一情况确实属实,因此北京文化市场执法总队对百度下达整改通知。

值得一提的是,自从今年4月份有关部门开展扫黄打非、净网2014以及剑网行动之后,已经有不少产品受到影响或关闭。其中,最为大家熟悉的莫不过是快播,新浪爱问·共享资料也在5月5日主动关闭进行排查,时至今日仍未恢复,而360网盘也在活动之后宣布,为配合有关部门的净网行动,他们将对个人文件的分享内容进行人工审核……

看到这里问题就来了,人工审核无疑太累,而且不能上传后立马分享,有可能会影响到用户的分享积极性。那除了人工审核外,网盘内容的审核还有哪些方式?

网盘内容可能的审核方式:

1.  关键字搜索:这是最简单的审核方式,通过输入关键词,能将一些看起来明显是违法、涉黄的内容直接干掉。如果做好这一项,至少能将网盘分享的糟粕内容去掉一大半。

2.  建立身份档案:DNA是人类唯一的身份识别码,而文件的DNA无疑是MD5,如果网盘能建立涉黄文件的MD5数据库,用户上传后自动分析MD5是否合法,则能避免涉黄文件的重复分享。

3.  自动截取视频缩略图:估计百度这样的公司,应该能对色情图片进行自动识别了。所以可以自动截取一个视频的十来个地方的缩略图,用色情图片识别技术鉴别该视频是否违法。

当然有些用户,会更改文件名或者建立压缩包来逃避涉黄文件的打击,那有没有好的办法来解决这些问题?

4.  关注访问量高的文件:访问量高,基本是涉黄类分享内容的主要特征之一,如果能在人工审核中,对这些访问量突然蹿升的文件进行审查,相比又会毙掉一部分文件分享。

不过纵使有这些审核办法,但人工审核仍然是最有效以及不可避免的手段,否则也就不会出现鉴黄师这样的职业了。

Dev和Ops所面临的挑战

开发团队面对的挑战:

 

  • 延展性:我该如何进行系统架构,来保证在100台机器上的运作表现等同于仅1台机器上运作?
  • 性能表现:我该如何做才能确保系统表现与既定的服务级别协议相一致。
  • 性能测试:我该如何设计,才能使得开发者能更轻松地进行单元测试,同时与QA环节无缝接合?
  • 外延性:我该如何选择设计模式使得系统能满足不断变化的商业目标?
  • 问题诊断:怎么做才能快速进行问题定位,找出根本原因并进行有效处理?
  • 发布环节:怎么做才能快速进行程序的更新换代并最终成功发布?
  • 代码质量:该如何进行开发和测试把代码缺漏的影响降到最低?

 

营运团队面对的挑战:

 

  • 可靠性:所有应用都运作正常吗?应该采取何种战略把运行中断的影响降到最低?
  • 压力管理:如何合理分配资源来满足当前的营运负荷?又该如何动态变更环境配置来处理峰值满载情况?
  • 系统诊断:当多个虚拟机运行在同一机器上,一旦出现问题,该如何进行处理?
  • 监控:我需要时刻关注系统运作良好与否。
  • 成本管理:我们在尽量降低成本的同时还要保证营运质量。
  • 服务级别协议:对协议里面的各项指标,我们必须进行监控,管理和维护。

 

不难看出,开发部和营运部其实有着共同的目标:不断进行改良,使企业效益最大化。但诚如现实中的一个段子:当来自金星的开发部碰上来自火星的营运部,会经常发现大家都不在服务区,无法沟通。那么该如何做,才能使这两个企业的左膀右臂得以和谐共存?

程序延展性 — 这是每个开发者都盼望营运者所应该了解的

开发者心声:

我们需要花费好几个月甚至好几年的功夫才能开发出一个完整程序。我们费尽心思地去选择正确的设计模式,不厌其烦地优化自己的代码,尽最大努力保证质量。当我们再次回到代码行间中奋笔疾书前,衷心希望营运部能从以下几方面来好好对待我们的杰作。

首先,希望营运部能站在我们的角度来考虑问题。这次要谈的是程序延展性问题。

系统性能与延展性:恰如硬币的正反面

有时候人们会把性能和延展性混为一谈,但实际上两者是如正负极那样有所区别的。系统性能所关心的是:例如,程序的响应时间是多少?要花费多少CPU开销来进行一次请求应答?

另一方面,延展性所关心的是:当负载增加时,系统还能运作正常吗?比方说,经测量我们知道响应一次请求的时间是1s,延展性就需要关系当100或1000次请求发生时,这个并发响应时间是多少s。如果1000次的响应时间都接近1s,那么这个系统的延展性是良好的;但如果响应时间随着请求的递增而直线递增,那么这样的表现是……这样的经历,大家应该不会陌生吧。

要构架一个可扩展的程序不是件轻易的事情,但有几个核心原则能为成功之路做好铺垫。第一也是最重要的,尽最大努力保持程序的状态无关性,即程序不会在各个请求切换之间进行用户状态记录。当一个部件处于状态无关时,无论哪一个部件实例被调用,他们的作用都是相同的。这样的好处是不论在100台还是仅仅在1台机器上运行,无需复杂的设置,程序都能运作良好。这是个宏伟的目标,如果你能正确解构程序,你的程序或许就会呈现最大的状态无关性。

但是,用户状态有时候是需要被记录的。例如:当你登入一个网站时,网站需要记录你的信息来区分不同访客。一旦你的状态被记录,你随后的相关访问信息都会被一同记录下来。

在这种情况下,我们应该确保“粘性会话”在负载平衡器中被开启,意思是一旦会话被建立,所有及后的请求都应该附着到同一台机器中进行记录。这样做的好处是后续请求能够清楚知道用户的状态,他是谁和他正在做什么;反过来,倘若分而处之,那么必须把会话复写到不同服务器,才能让所有机器都知道用户的状态了。

然而,粘性有可能受制于系统弹性。假如负责收集请求的机器宕机了,那该怎么办?假如这需要劳烦用户再次登录,那对用户体验无疑是一次不小的打击。有些策略是能够帮助增强程序弹性的,不同策略对延展性的影响各有不同,有些影响是举足轻重的。这些策略包括:

 

  • 会话复制(主要的/次要的或者更多);
  • 数据库搜索;
  • 数据存储共享;
  • 富Cookies;
  • Terracotta服务器阵列;
  • 分布式缓存。

 

会话复制

会话复制是最常见的弹性措施。在这个模型中,当一个用户会话发生改变时,会话对象会被序列化,然后发送到一个或多个次服务器。一旦服务器出现宕机,负载平衡器会把当前负载重定向到次服务器。在一个简单的模型中,每个主服务器都会配备一个次服务器,这样便可以处理更多突发中断情况。但是一旦主次服务器同时中断,用户会话便也跟着丢失了。所以建议有条件的话,还是配备多个次服务器,虽然这可能会造成额外的工作量。

举例来说,当你把数据复制到五个服务器时,对于每一次变更,你都需要把会话序列化,然后交叉发送到这些服务器。这样便大大降低了系统延展性,因为需要额外的资源开销来管理复制机。在这个情况下,我们需要营运部注意这些故障转移规则,来协助进行必要服务器的管理。再者,我们不希望这些服务器是可变的(动态变更规模来满足负载要求),因为在一次精确的战略性服务器关闭措施中,需要确保会话数据不会被丢失。

【畅言】公司应不应该禁止程序员上网?

近来V众投上大家讨论了公司应不应该禁止员工上网这个问题,这似乎是个不用讨论其傻无比的问题,但现实中在这点上却极为分裂,就我个人观感,做传统软件、外包、电信的更容易选择封杀堵截,而做互联网的则比较开放,估计现在是不只允许甚至还得帮助翻墙,要不然Google Calendar什么的没法用。

上不上网背后的两难

就像问题中讨论的,不允许上网主要应该就是两个原因,一个是信息安全;一个则是希望提高效率。所谓提高效率则是因为考虑允许上网,员工可能会更多的去访问淘宝等网站。上网的好处也比较明显,比如全面的检索各种信息,提高工作效率和视野等。

前者的担心也是一种事实,因为很多网站都曾经提到一般来讲平日的点击要远高于周末的点击,这可以从侧面说明提高效率一说并不是纯粹的空穴来风。

这似乎有点两难,那怎么样才是一种更合理的处理方式?

禁止程序员上网是极为愚蠢的

首先必须指出的是禁止程序员上网是极为愚蠢的,不管有多少理由,绝不在合理方式的备选项之中。因为它所可能带来的伤害长线来看一定会远超过它所可能带来的收益。如果非要类比的话,这很可能更像明清两代的闭关锁国与封关禁海,未必不解决具体的某个问题,但长线来看则可能成为鸦片战争这类事情的直接推动力。这也就意味着一个有长期视角的公司,无论如何不应该采取这个手段来解决信息安全以及专心工作的问题。

为避免上述结论显得过于武断,这里做一些进一步的补充。

现在的技术世界更像是一个开放系统,每个人都在其中获取与给予,每个人都需要在这样的分享过程中成长,断开与这系统的联系则等价于断开与技术潮流的联系,停止员工的知识更新。具体来讲如果一个公司一直封闭,那它可能就一直只知道要用ASP.net Webform来做Web应用,不知道有人在搞前端框架,不知道还有一种数据库类型叫NoSQL,这不很可怕么,长线来谁能承担这种后果?当年曾经有一个开窗户进苍蝇的比喻,说的也是这类情形,这时候更合适的方法是开窗打苍蝇或者上合适的纱窗,而不是把窗口关上,把自己做成一个封闭系统并闷死自己。

更不合理的是在一个强调培训的公司来做这种事情,这就更加矛盾,解决问题的同时提升自己,探索新的技术世界无疑的是最好的提升技能方式。可一旦断网,就等于断了这条高效的路径。可有人知道Linux下联网安装一个开源应用与断网安装一个应用差别有多大,很多时候这是10分钟与一周的差别。

考虑代替的解决方法

公司更应该在联网的前提下考虑解决问题的方式,而不是一有问题就立刻简单粗暴的断网。那究竟什么样的方式更理想?

安全和效率更多的是IT和管理层的责任。从信息泄露的角度看,强化IT监控比断网是更有效的方式。IT上加大投入是一次性的,而断网对工作效率的影响则是永久性的。

对于提升效率问题,则更不能断网,而是适合把它打造成一个指示器。我们需要承认工作时的上网记录,公司是有权知道和分析的,也有权根据特定规则对不合适的上网行为进行批评。甚至可以基于这个提炼来设定一个指标,不是用来批评员工如何,而是用来检测所谓的各种高级管理方法是否有效。如果采取的各种关于激励的措施确实有效,增加了员工对工作的认可程度,那访问工作不相关网站的指标是应该呈现下降趋势的,这指标其实很难得可以避免很多因为很难度量而产生的自吹自擂,自欺欺人。但这需要管理层有点担当,因为这样做相当于对公司有利,但对很多管理者没利。

衍生问题:手机该如何处理

随着时代的发展,喜欢武断禁止上网的立刻就遇到了下一个麻烦:随着智能手机的普及,如果PC被禁止了,大家就用手机么?按照之前的思路,这次要禁止手机了。但这个会比较麻烦些,禁止使用手机对个人生活伤害太大,很多公司会比较犹豫,所以事情就陷入僵局了。手机与使用公司PC上网的关键差别在于手机似乎只影响效率,只要不接入公司网络对信息安全影响会小些。所以现状是很多人在这个事情上纠结着,但想不出有效方法。其实这可以用与上面类似的方法处理,把它作为一种管理有效性的指示器,同掌握许多很牛的词相比,这是真正考验管理者能力的地方。