#2167
展开↯#2168
作者:广西南宁市
VB从access数据库中循环读取数据
do until rs.eof
strnewpath=strpath & rs.filed("日期") & "_" & "第"& i & "个文件"
open "d:\data.txt" for output as i
print #hfile,rs.getstring
close
i=i+1
rs.movenext
loop
Run code
Cut to clipboard
文章:Visual Basic 6.0常用工具入门教程代码实例 发表时间:2016-09-18, 11:03:47
#2169
作者:广西南宁市
js实现文字截断
先前用jq做了一个文字截断功能,但是不用jq的项目要实现此功能还要引如jq显得过于麻烦。这里写了一个js的文字截断功能。直接上代码。
HTML(测试用的):
JS:
这里用getElementsByTagName获取所有节点遍历,if(Pox[i].getAttribute("limit"))筛选含有limit这个自定义属性的节点,然后获取各个节点自定义属性limit的值,将其放入limit数组中,把各个节点文字放入Text数组中,将需要截断的值和文本长度作比较,进行截断。
全部JS,这里写的自调:
先前用jq做了一个文字截断功能,但是不用jq的项目要实现此功能还要引如jq显得过于麻烦。这里写了一个js的文字截断功能。直接上代码。
HTML(测试用的):
<div>我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox</div>
<div limit="10" >我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox</div>
<div limit="5" >我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox</div>
<div limit="2" >我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox</div>
<div >我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox</div>
<div limit="20" >我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox</div>
<div limit="100" >我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox</div>
<div>我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox</div>
Run code
Cut to clipboard
JS:
var limit=[];
var Text=[];
var Pox=document.getElementsByTagName('*');
for(var i=0;i<Pox.length;i++){
if(Pox[i].getAttribute("limit")){
limit[i]=Pox[i].getAttribute("limit");
Text[i]=Pox[i].innerHTML;
if(limit[i]<Text[i].length){
Pox[i].innerHTML=Text[i].substring(0,limit[i])+"...";
}
}
}
Run code
Cut to clipboard
这里用getElementsByTagName获取所有节点遍历,if(Pox[i].getAttribute("limit"))筛选含有limit这个自定义属性的节点,然后获取各个节点自定义属性limit的值,将其放入limit数组中,把各个节点文字放入Text数组中,将需要截断的值和文本长度作比较,进行截断。
全部JS,这里写的自调:
<script type="text/javascript">
window.onload=function(){
(function limit(){
var limit=[];
var Text=[];
var Pox=document.getElementsByTagName('*');
for(var i=0;i<Pox.length;i++){
if(Pox[i].getAttribute("limit")){
limit[i]=Pox[i].getAttribute("limit");
Text[i]=Pox[i].innerHTML;
if(limit[i]<Text[i].length){
Pox[i].innerHTML=Text[i].substring(0,limit[i])+"...";
}
}
}
}());
}
</script>
Run code
Cut to clipboard
文章:常用html、demo代码 发表时间:2016-09-14, 11:08:19
#2170
作者:广西南宁市
用javascript获取屏幕高度和宽度等信息
网页可见区域宽: document.body.clientWidth
网页可见区域高: document.body.clientHeight
网页可见区域宽: document.body.offsetWidth (包括边线的宽)
网页可见区域高: document.body.offsetHeight (包括边线的高)
网页正文全文宽: document.body.scrollWidth
网页正文全文高: document.body.scrollHeight
网页被卷去的高: document.body.scrollTop
网页被卷去的左: document.body.scrollLeft
网页正文部分上: window.screenTop
网页正文部分左: window.screenLeft
屏幕分辨率的高: window.screen.height
屏幕分辨率的宽: window.screen.width
屏幕可用工作区高度: window.screen.availHeight
屏幕可用工作区宽度: window.screen.availWidth
<script language="javascript">
function screenInfo(){
var s = "";
s += "\r\n网页可见区域宽:"+ document.body.clientWidth;
s += "\r\n网页可见区域高:"+ document.body.clientHeight;
s += "\r\n网页可见区域宽:"+ document.body.offsetWidth +" (包括边线的宽)";
s += "\r\n网页可见区域高:"+ document.body.offsetHeight +" (包括边线的宽)";
s += "\r\n网页正文全文宽:"+ document.body.scrollWidth;
s += "\r\n网页正文全文高:"+ document.body.scrollHeight;
s += "\r\n网页被卷去的高:"+ document.body.scrollTop;
s += "\r\n网页被卷去的左:"+ document.body.scrollLeft;
s += "\r\n网页正文部分上:"+ window.screenTop;
s += "\r\n网页正文部分左:"+ window.screenLeft;
s += "\r\n屏幕分辨率的高:"+ window.screen.height;
s += "\r\n屏幕分辨率的宽:"+ window.screen.width;
s += "\r\n屏幕可用工作区高度:"+ window.screen.availHeight;
s += "\r\n屏幕可用工作区宽度:"+ window.screen.availWidth;
alert(s);
}
</script>
Run code
Cut to clipboard
文章:常用html、demo代码 发表时间:2016-09-14, 11:06:48
#2171
作者:广西南宁市
万能随机字符串生成函数
<?php
//mt_rand 获取随机数 mt_rand(min, max);
$str="abcdefghijkmnpqrstuvwxyz0123456789ABCDEFGHIGKLMNPQRSTUVWXYZ";//设置被随机采集的字符串
$codeLen='5';//设置生成的随机数个数
function str_rand($str,$codeLen){
$rand="";
for($i=0; $i<$codeLen-1; $i++){
$rand .= $str[mt_rand(0, strlen($str)-1)]; //如:随机数为30 则:$str[30]
}
return $rand;
}
$code=str_rand($str,$codeLen);
Run code
Cut to clipboard
文章:PHP发送请求头和接收打印请求头 发表时间:2016-09-14, 11:05:21
#2172
作者:广西南宁市
PHP生成验证码图片
备注:建议大家用mt_rand(),而不是rand(),前者效率更高
<?php
// 创建画布
$width = 120; // 规定画布的宽高
$height = 45;
$image = imagecreatetruecolor($width, $height); // 创建一幅真彩色图像
// 添加一些即将用到的颜色
$white = imagecolorallocate($image, 0xf2, 0xec, 0xe0);
$orange = imagecolorallocate($image, 0xff, 0xa5, 0x4c);
// 对画布背景填充颜色
imagefill($image, 0, 0, $white);
//mt_rand 获取随机数 mt_rand(min, max);
function str_rand(){
$str="abcdefghijkmnpqrstuvwxyz0123456789ABCDEFGHIGKLMNPQRSTUVWXYZ";
$rand="";
for($i=0; $i<5; $i++){//获取5个随机的字符串
$rand .= $str[mt_rand(0, strlen($str)-1)]; //如:随机数为30 则:$str[30]
}
return $rand;
}
$verifyCode=str_rand();
// 画一串字符串在画布上
imagestring($image, 10, 10, 10, "$verifyCode", $orange);
// 通知浏览器输出的是图像(png类型)
header('Content-Type: image/png');
// 输出到浏览器
imagepng($image);
// 释放图像资源
Run code
Cut to clipboard
备注:建议大家用mt_rand(),而不是rand(),前者效率更高
文章:PHP发送请求头和接收打印请求头 发表时间:2016-09-14, 11:03:07
#2173
作者:广西南宁市
CSS3图片缩放
鼠标指上去,图片放大,鼠标离开图片恢复原样,并且有放大、缩小效果 查看效果演示
鼠标指上去,图片放大,鼠标离开图片恢复原样,并且有放大、缩小效果 查看效果演示
<style>
.case,.case img{
height:254px;
transition:all 1s ease 0s;
width:394px;
overflow:hidden;
}
.case img:hover{
transform:scale(2,2);
-ms-transform:scale(2,2); /* IE 9 */
-moz-transform:scale(2,2); /* Firefox */
-webkit-transform:scale(2,2);/* Safari 和 Chrome */
-o-transform:scale(2,2); /* Opera */
/*transform:rotate(360deg);*/
}
</style>
<div class="case">
<img src="http://li.img.pan.lizhenqiu.com/f9fb4f79f59fad81f092f0d18265d759.jpg" />
</div>
Run code
Cut to clipboard
文章:成功的故事只能倒叙着讲 发表时间:2016-09-14, 10:59:31
#2174
作者:广西南宁市
PHP取当前年、月、日开始时间戳和下年、月、日开始时间戳函数
函数代码:
调用代码:
函数代码:
/**
* 获取时间戳
* $Ymd = Y 年
* $Ymd = m 月
* $Ymd = d 日
* $Ymd = NULL 当前时间戳
* $xia = true 是否取下次开始时间戳:取下年开始时间戳 或者下月开始时间戳 或者明日开始时间戳
*/
function getTime($Ymd=NULL,$xia=false){
if($Ymd=='Y' && $xia==true){
//取下个年度开始时间戳
return strtotime((date('Y',time())+1).'-01-01 00:00:00');
}
else if($Ymd=='Y'){
//取本年度开始时间戳
return strtotime(date('Y',time()).'-01-01 00:00:00');
}
else if($Ymd=='m' && $xia==true){
//取下个月度开始时间戳
$xiayue_nianfen = date('Y',time());
$xiayue_yuefen = date('m',time());
if($xiayue_yuefen==12){
$xiayue_nianfen += 1; //如果月份等于12月,那么下月年份+1
$xiayue_yuefen = 1; //如果月份等于12月,那么下月月份=1月
}
else{
$xiayue_yuefen += 1; //如果月份不是12月,那么在当前月份上+1
}
return strtotime($xiayue_nianfen.'-'.$xiayue_yuefen.'-01 00:00:00');
}
else if($Ymd=='m'){
//取本月度开始时间戳
return strtotime(date('Y-m',time()).'-01 00:00:00');
}
else if($Ymd=='d' && $xia==true){
//取明日开始时间戳
return strtotime(date('Y-m-d',time()).' 00:00:00')+86400;
}
else if($Ymd=='d'){
//取今日开始时间戳
return strtotime(date('Y-m-d',time()).' 00:00:00');
}
else{
//取当前时间戳
return time();
}
}
Run code
Cut to clipboard
调用代码:
getTime('Y'); //当前年的时间戳
getTime('m'); //当前月的时间戳
getTime('d'); //当前日的时间戳
getTime('Y',true); //明年的时间戳
getTime('m',true); //下月的时间戳
getTime('d',true); //明日的时间戳
getTime(); //当前的时间戳
Run code
Cut to clipboard
文章:PHP发送请求头和接收打印请求头 发表时间:2016-09-14, 10:43:48
#2175
作者:广西南宁市
PHP判断访问终端,电脑或手机访问
函数代码:
调用方式:
函数代码:
//判断电脑或手机访问
function is_mobile(){
$user_agent = $_SERVER['HTTP_USER_AGENT'];
$mobile_agents = Array("240x320","acer","acoon","acs-","abacho","ahong","airness","alcatel","amoi","android","anywhereyougo.com","applewebkit/525","applewebkit/532","asus","audio","au-mic","avantogo","becker","benq","bilbo","bird","blackberry","blazer","bleu","cdm-","compal","coolpad","danger","dbtel","dopod","elaine","eric","etouch","fly ","fly_","fly-","go.web","goodaccess","gradiente","grundig","haier","hedy","hitachi","htc","huawei","hutchison","inno","ipad","ipaq","ipod","jbrowser","kddi","kgt","kwc","lenovo","lg ","lg2","lg3","lg4","lg5","lg7","lg8","lg9","lg-","lge-","lge9","longcos","maemo","mercator","meridian","micromax","midp","mini","mitsu","mmm","mmp","mobi","mot-","moto","nec-","netfront","newgen","nexian","nf-browser","nintendo","nitro","nokia","nook","novarra","obigo","palm","panasonic","pantech","philips","phone","pg-","playstation","pocket","pt-","qc-","qtek","rover","sagem","sama","samu","sanyo","samsung","sch-","scooter","sec-","sendo","sgh-","sharp","siemens","sie-","softbank","sony","spice","sprint","spv","symbian","tablet","talkabout","tcl-","teleca","telit","tianyu","tim-","toshiba","tsm","up.browser","utec","utstar","verykool","virgin","vk-","voda","voxtel","vx","wap","wellco","wig browser","wii","windows ce","wireless","xda","xde","zte");
$is_mobile = false;
foreach ($mobile_agents as $device) {
if (stristr($user_agent, $device)) {
$is_mobile = true;
break;
}
}
return $is_mobile;
}
Run code
Cut to clipboard
调用方式:
//返回true或false
is_mobile();
Run code
Cut to clipboard
文章:PHP发送请求头和接收打印请求头 发表时间:2016-09-14, 10:42:30
#2176
作者:广西南宁市
php下载文件,添加响应头
//下载,添加响应头信息
header('Content-type:application/octet-stream');
header('Content-Disposition:attachment;filename="'.basename($file).'"');
header('Content-Length:'.filesize($file));
readfile($file);
Run code
Cut to clipboard
文章:常用html、demo代码 发表时间:2016-09-14, 10:32:57
#2177
作者:广西南宁市
阿里什么时候能把买假货的从平台里“开除”就真的牛逼了,不过,阿里的这次处罚应该算是“合里不合情”:
作为安全部的人,利用漏洞秒抢月饼,我们做几个假设:
1)这四位宝宝知不知道这个行为是会被人发现的
2)这四位宝宝知不知道这个行为被发现后是会有什么样的后果
假如:
1.1宝宝们如果知道,这样的行为会受到这样的处罚,那么他们得到这样的处罚是应该的
1.2宝宝们如果不知道,会有那么严厉的惩罚,那么这个处罚结果对他们来说是严重的,或者出乎意料的,毕竟如果是不光彩的事要做的话,人越少越好,抢的量越少越好,但是从最终的结果看,四个人抢了一百多盒,其实他们更多的是把这个行为当做一个玩笑,但是这次是月饼,如果是其他的物品呢,会有什么样的后果,所以作为阿里有两个处理方式:
一是、四位宝宝支付100多盒月饼的钱(喜剧结果)二是、四位宝宝被开除(悲剧结果)
阿里选择了后者,这说明他们把这个事情看的还是比较恶劣的,也是告诉众人,不管是内部人还是外部人也好,都要遵守我定的规则,不遵守的话,后果是很严重的(当老大久了都这样)
但是我还是要为四位宝宝伸冤:
1.发现了漏洞,他们四人自己就去抢,而是没有让外部的人来做这个动作,说明他们本身对这个事情的定性就比较简单
2.四个宝宝作为安全部的人,能够发现漏洞,并利用漏铜,说明这四个宝宝技术还是过硬啊
所以这个处理结果:合里(阿里的里)不合情
作为安全部的人,利用漏洞秒抢月饼,我们做几个假设:
1)这四位宝宝知不知道这个行为是会被人发现的
2)这四位宝宝知不知道这个行为被发现后是会有什么样的后果
假如:
1.1宝宝们如果知道,这样的行为会受到这样的处罚,那么他们得到这样的处罚是应该的
1.2宝宝们如果不知道,会有那么严厉的惩罚,那么这个处罚结果对他们来说是严重的,或者出乎意料的,毕竟如果是不光彩的事要做的话,人越少越好,抢的量越少越好,但是从最终的结果看,四个人抢了一百多盒,其实他们更多的是把这个行为当做一个玩笑,但是这次是月饼,如果是其他的物品呢,会有什么样的后果,所以作为阿里有两个处理方式:
一是、四位宝宝支付100多盒月饼的钱(喜剧结果)二是、四位宝宝被开除(悲剧结果)
阿里选择了后者,这说明他们把这个事情看的还是比较恶劣的,也是告诉众人,不管是内部人还是外部人也好,都要遵守我定的规则,不遵守的话,后果是很严重的(当老大久了都这样)
但是我还是要为四位宝宝伸冤:
1.发现了漏洞,他们四人自己就去抢,而是没有让外部的人来做这个动作,说明他们本身对这个事情的定性就比较简单
2.四个宝宝作为安全部的人,能够发现漏洞,并利用漏铜,说明这四个宝宝技术还是过硬啊
所以这个处理结果:合里(阿里的里)不合情
文章:《阿里盛世下的蝼蚁》 发表时间:2016-09-14, 10:08:43
#2178
作者:广西南宁市
太冲热点了 以至于内容比较简单,建议多一些写月饼那件事虽小,但对阿里的反思,比如:今天这4个员工为了一己之私侵吞公司财产,内部消化,以致阿里丧失C端口碑,将来可能在更深层的领域侵吞财产,是定时炸弹,而不是落在网络安全这根落脚点上。
文章:《阿里盛世下的蝼蚁》 发表时间:2016-09-14, 10:07:15
#2179
作者:广西南宁市
扯蛋,你真要保障员工利益,就不要用技术的方式。人家用技术获取利益了,你又要讲道德了。你不改进你自身的漏洞,却说别人抢了利益。嗯,这做法确实很符合绝大部分国人的思考习惯。阿里果然不是技术公司,就一挣钱的商业“巨子”而已!
文章:《阿里盛世下的蝼蚁》 发表时间:2016-09-14, 10:06:39
#2180
展开↯#2181
作者:广西南宁市
我觉得这是职业操守的问题,安全人员不诚信,触及到了阿里诚信的底线了,三观不正,技术再好有什么用,留着是定时炸弹。
公司做的月饼内卖页面肯定是交给技术,设想作为内卖页面,而且是中秋节临时上的,作为技术肯定只要满足基本需求就OK了,谁会像坐外部页面那样检查各种漏洞,毕竟技术每天处理各种需求,上班很忙,这种内卖页面肯定能简化的就简化,大家都是内部员工,只要几本需求就OK了。
所以不是漏洞不漏洞和技术简单还是复杂的问题。也跟geek精神一毛钱关系也没有。
公司做的月饼内卖页面肯定是交给技术,设想作为内卖页面,而且是中秋节临时上的,作为技术肯定只要满足基本需求就OK了,谁会像坐外部页面那样检查各种漏洞,毕竟技术每天处理各种需求,上班很忙,这种内卖页面肯定能简化的就简化,大家都是内部员工,只要几本需求就OK了。
所以不是漏洞不漏洞和技术简单还是复杂的问题。也跟geek精神一毛钱关系也没有。
文章:《阿里盛世下的蝼蚁》 发表时间:2016-09-14, 10:03:31
#2182
作者:广西南宁市
白帽子说法相当小题大做,本身就是很简单快速的开发一个秒杀功能给内部员工使用,一开始就没想着被人刷这档子事,否则阿里这么多年的技术也真是够扯淡了,随便一个脚本就破解了?不过说到处罚,确实是重了
文章:《阿里盛世下的蝼蚁》 发表时间:2016-09-14, 10:02:56
#2183
作者:广西南宁市
有一个细节很重要,当事人说本来没考虑过抢多个这回事,只是没想到点击了“抢购”之后没有跳转进入订单或者支付页面,所以导致脚本不停的点击“抢购”,因此才买了很多个。想抢一两盒和想抢一百盒可完全是两回事。
而从通常角度判断,都会认为点了“抢购”按钮之后页面会自动跳转,继续在原按钮位置点击“抢购”自然不会有实际效果。
而从通常角度判断,都会认为点了“抢购”按钮之后页面会自动跳转,继续在原按钮位置点击“抢购”自然不会有实际效果。
文章:《阿里盛世下的蝼蚁》 发表时间:2016-09-14, 10:02:36
#2184
作者:广西南宁市
发现一个很有趣的现象,觉得阿里做得对的,多是企业老板,或高管;觉得阿里做得太绝的,都是员工。。。。其实都是站在自己的立场和利益角度表达立场而已
文章:《阿里盛世下的蝼蚁》 发表时间:2016-09-14, 09:59:52
#2185
作者:广西南宁市
几点看法:关于阿里的「月饼事件」
阿里巴巴的“月饼门”火了。昨天(9月12日)在内部抢购抢购月饼的时候,阿里的五名技术人员利用js脚本刷单,然后有四个被开除。知乎上有被开除的员工现身说法,认为自己根本不是利用漏洞来获利,只是无心之失。
1、阿里的HR,几乎每隔一年,就会在知乎火上一次,而且已经有了段子:阿里内网的技术升级,永远来自HR的强力驱动。曾经因为马云抱怨内网信息总是外泄,HR连夜催着技术给每个员工的访问界面增加了一层肉眼不可识别的单独匹配代码,这样在截图出去的时候,技术可以根据图片锁定是谁截的这张图。去年,阿里的HR又伪造离职谈话记录,被愤怒的离职员工贴到知乎,阿里对HR只是处以记过处分,而负责开发内网的团队则因「安全事故」——就是让离职员工看到面谈记录——被打了不合格的绩效。有人翻出马云在2010年声称「阿里内网要向全社会开放、公开透明是阿里的企业文化」的发言,倒是证明了言多必失的古老道理。
2、「月饼事件」在两个圈子里呈现出了截然不同的舆论倾向,我的微信朋友圈里——成员多以互联网从业者为主——大部分都为那四个程序员叫屈,认为阿里的奇葩HR又是在展示他们价值观的地板,而在微博上,那些将之视作公共事件的看客,则大都奇怪于为什么开除这种监守自盗的员工也会引起轩然大波。毋庸置疑的是,观念的迥异取决于立场的割裂,每个人都试图扮演其中一方的角色,并将利益得失代入其中,有人体验居安思危,有人感到为民除害。
3、在看到当时员工的自述之前,我也以为这几个程序员是用了多么高端的技术手段攻破了阿里的安全系统,结果原来仅仅只是写了一个不间断提交申请的脚本,在网页端完成了秒杀活动所需要的行为条件。这种做法,委实和春运时期网民们通过各种工具到12306抢票没有任何分别,当12306升级算法时你们倒是骂得痛快觉得又给人民添堵了,怎么换到这次事件里你们又站在道德的制高点上大骂作弊者不要脸了呢。
4、即使是为了保障公平的目的,前置的制度设计也远比后置的解释权力要更加有效,阿里本身没有对活动做出「同一帐号只能购买一次」的设置,导致重复购买都被算入库存消耗,有人阴差阳错且在没有造成实际损失——那几个程序员主动向上级报备了这次事故——的情况下,这差不多是教科书式的白帽子案例,也提供了解决漏洞的契机。
5、当然,当乌云仍在「因故升级」的时期,这套白帽子的逻辑可能无法得到多少认同,它有点像是将某些互联网文化纳入法外之地的诡辩。然而事实就是如此,在西方互联网,黑客的恶作剧精神源自海盗传统——迄今为止,苹果每年生日都还会在库萨比诺的总部升起骷髅旗——这种挑战法律和规则的叛逆造就了互联网对于开源和自由的信仰,也让各种开放式的协议组成了人人皆可享用而不受到任何政权支配的数字世界。
6、然而,白帽子的所作所为在事实上相当于有人撬了你家的门锁,发现了装置的漏洞,然后通报了你,有人感谢撬锁者帮助自己排除了一项安全隐患,也有人控诉撬锁者侵犯了自己的住宅,不同的认知将会递进出不同的态度。尽管即使是最简单的经济学原理也告诉我们扼杀白帽子看似能够带来一个短期内的安全环境但在长期看来会让安全隐患不断滋生最终酿成大祸,只是社会的接受程度决定了这种舶来文化的生存空间,别无他法。美国国防部旗下一百个多网站在去年发生了不同规模的信息泄露事件,导致五角大楼在今年年初拿出数十万美元奖励那些攻破政府网站的白帽子,以便于自己提高查找和修复漏洞的效率。
7、事实上,在2014年,支付宝也曾被白帽子找到过一个登录漏洞,在公布之后,阿里向白帽子奖励了5万元人民币,还发出公告,继续拿出500万重奖那些有能力突破阿里安全防线的白帽子,这种态度在当时获得了相当高的业界评价。
8、从「月饼事件」谈到白帽子或许有些小题大做,但因「月饼事件」而开除员工并让后者背负职业污点——这在企业用人时的背景调查相当致命——同样显得小题大做。这种手法承应于阿里内部反腐运动的高压线,希望起到杀鸡儆猴的恐吓作用,但是拿着金牌令箭斩人上瘾的快感,大概只会复兴东厂式的威风。是的,就算你一万次强调1983年的「严打」不搞不行那时的车匪路霸已经嚣张上天了,我也会一万次的回复你把一个为自己女朋友拍了几张裸照的男青年判处死刑是他妈的脑子抽风。
9、我要说的是,这的确属于企业文化的选择问题,无论企业如何作为,它都必然有着合乎情理的缘由,并对企业的形象做出客观上的锚定。令人遗憾的是,在远不到最为恶劣的条件时,事情有了最为恶劣的结果,这种伤害对于阿里这家公司本身,也没有那么容易被忽视。你要了农民的温顺和驯服,就别指望得到海盗的桀骜和灵性,求仁得仁。
10、说了这么多,谁给我寄一盒阿里的月饼尝尝?
阿里巴巴的“月饼门”火了。昨天(9月12日)在内部抢购抢购月饼的时候,阿里的五名技术人员利用js脚本刷单,然后有四个被开除。知乎上有被开除的员工现身说法,认为自己根本不是利用漏洞来获利,只是无心之失。
1、阿里的HR,几乎每隔一年,就会在知乎火上一次,而且已经有了段子:阿里内网的技术升级,永远来自HR的强力驱动。曾经因为马云抱怨内网信息总是外泄,HR连夜催着技术给每个员工的访问界面增加了一层肉眼不可识别的单独匹配代码,这样在截图出去的时候,技术可以根据图片锁定是谁截的这张图。去年,阿里的HR又伪造离职谈话记录,被愤怒的离职员工贴到知乎,阿里对HR只是处以记过处分,而负责开发内网的团队则因「安全事故」——就是让离职员工看到面谈记录——被打了不合格的绩效。有人翻出马云在2010年声称「阿里内网要向全社会开放、公开透明是阿里的企业文化」的发言,倒是证明了言多必失的古老道理。
2、「月饼事件」在两个圈子里呈现出了截然不同的舆论倾向,我的微信朋友圈里——成员多以互联网从业者为主——大部分都为那四个程序员叫屈,认为阿里的奇葩HR又是在展示他们价值观的地板,而在微博上,那些将之视作公共事件的看客,则大都奇怪于为什么开除这种监守自盗的员工也会引起轩然大波。毋庸置疑的是,观念的迥异取决于立场的割裂,每个人都试图扮演其中一方的角色,并将利益得失代入其中,有人体验居安思危,有人感到为民除害。
3、在看到当时员工的自述之前,我也以为这几个程序员是用了多么高端的技术手段攻破了阿里的安全系统,结果原来仅仅只是写了一个不间断提交申请的脚本,在网页端完成了秒杀活动所需要的行为条件。这种做法,委实和春运时期网民们通过各种工具到12306抢票没有任何分别,当12306升级算法时你们倒是骂得痛快觉得又给人民添堵了,怎么换到这次事件里你们又站在道德的制高点上大骂作弊者不要脸了呢。
4、即使是为了保障公平的目的,前置的制度设计也远比后置的解释权力要更加有效,阿里本身没有对活动做出「同一帐号只能购买一次」的设置,导致重复购买都被算入库存消耗,有人阴差阳错且在没有造成实际损失——那几个程序员主动向上级报备了这次事故——的情况下,这差不多是教科书式的白帽子案例,也提供了解决漏洞的契机。
5、当然,当乌云仍在「因故升级」的时期,这套白帽子的逻辑可能无法得到多少认同,它有点像是将某些互联网文化纳入法外之地的诡辩。然而事实就是如此,在西方互联网,黑客的恶作剧精神源自海盗传统——迄今为止,苹果每年生日都还会在库萨比诺的总部升起骷髅旗——这种挑战法律和规则的叛逆造就了互联网对于开源和自由的信仰,也让各种开放式的协议组成了人人皆可享用而不受到任何政权支配的数字世界。
6、然而,白帽子的所作所为在事实上相当于有人撬了你家的门锁,发现了装置的漏洞,然后通报了你,有人感谢撬锁者帮助自己排除了一项安全隐患,也有人控诉撬锁者侵犯了自己的住宅,不同的认知将会递进出不同的态度。尽管即使是最简单的经济学原理也告诉我们扼杀白帽子看似能够带来一个短期内的安全环境但在长期看来会让安全隐患不断滋生最终酿成大祸,只是社会的接受程度决定了这种舶来文化的生存空间,别无他法。美国国防部旗下一百个多网站在去年发生了不同规模的信息泄露事件,导致五角大楼在今年年初拿出数十万美元奖励那些攻破政府网站的白帽子,以便于自己提高查找和修复漏洞的效率。
7、事实上,在2014年,支付宝也曾被白帽子找到过一个登录漏洞,在公布之后,阿里向白帽子奖励了5万元人民币,还发出公告,继续拿出500万重奖那些有能力突破阿里安全防线的白帽子,这种态度在当时获得了相当高的业界评价。
8、从「月饼事件」谈到白帽子或许有些小题大做,但因「月饼事件」而开除员工并让后者背负职业污点——这在企业用人时的背景调查相当致命——同样显得小题大做。这种手法承应于阿里内部反腐运动的高压线,希望起到杀鸡儆猴的恐吓作用,但是拿着金牌令箭斩人上瘾的快感,大概只会复兴东厂式的威风。是的,就算你一万次强调1983年的「严打」不搞不行那时的车匪路霸已经嚣张上天了,我也会一万次的回复你把一个为自己女朋友拍了几张裸照的男青年判处死刑是他妈的脑子抽风。
9、我要说的是,这的确属于企业文化的选择问题,无论企业如何作为,它都必然有着合乎情理的缘由,并对企业的形象做出客观上的锚定。令人遗憾的是,在远不到最为恶劣的条件时,事情有了最为恶劣的结果,这种伤害对于阿里这家公司本身,也没有那么容易被忽视。你要了农民的温顺和驯服,就别指望得到海盗的桀骜和灵性,求仁得仁。
10、说了这么多,谁给我寄一盒阿里的月饼尝尝?
文章:《阿里盛世下的蝼蚁》 发表时间:2016-09-14, 09:58:52
VbCrlf输出换行,书写代码断行 空格+_。
print “a”,vbcrlf,“b”; _ "c"
结果:
a
bc