WWW弱口令怎么利用
利用某些特殊构造的SQL语句插入SQL的特殊字符和指令,提交一段数据库查询代码(一般是在浏览器地址栏进行,通过正常的www端口访问),操纵执行后端的DBMS查询并获得本不为用户所知数据的技术,也就是SQL Injection(SQL注入)。
SQL注入是从正常的WWW端口通过对页面请求访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙很少会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。
SQL注入的手法相当灵活,可以根据具体情况进行分析,构造巧妙的SQL语句,从而获取想要的数据。
程序存在SQL注入,追其原因,是因为代码或者编码的不完善。但说到底,是程序员的惰性。代码的不完善,往往是因为在程序编写的过程中,没有考虑到代码的健壮性及安全性的结果,就国内现状来看,大多数网站使用的脚本语言,用ASP+Access或SQLServer的占70%以上,PHP+MySQL占20%,其他的不足10%,并且因为开发者水平的参差不齐,代码编写的过程考虑不够周全,程序代码的安全性值得怀疑,而程序脚本被注入也成为必然。
当然,程序运行环境的先天缺陷也是人为的,这种现象无法完全杜绝避免。从攻击者的角度来看,使用SQL注入能够避免绝大多数防火墙的防御,不留攻击痕迹,攻击手法多种多样,因此才会导致SQL注入攻击手段的兴起。
3.1.2、SQL注入的原理及分类
SQL-Injection的原理
SQL是一种用于关系数据库的结构化查询语言。它分为许多种,但大多数都松散地基于美国国家标准化组织最新的标准SQL-92。SQL语言可以修改数据库结构和操作数据库内容。当一个攻击者能够通过往查询中插入一系列的SQL操作数据写入到应用程序中去,并对数据库实施了查询,这时就已经构成了SQL-Injection。
SQL-Injection的分类
由于SQL-injection攻击出要发生在B/S结构的应用程序上,而这些程序大部分都属于互联网的web站点,在这种情况下SQL-Injection同样需要遵循HTTP协议,形成了两种分类: POST方式注入和GET方式注入
3.1.3、SQL-Injection的攻击方法
常规注入方法 SQL注入攻击本身就是一个常规性的攻击,它可以允许一些不法用户检索你的数据,改变服务器的设置,或者在你不小心的时候黑掉你的服务器。
旁注 顾名思义就是从旁注入,也就是利用主机上面的一个虚拟站点进行渗透 ,此类手法多出现与虚拟主机站点。
盲注 通过构造特殊的SQL语句,在没有返回错误信息的情况下进行注入。
跨站注入 攻击者利用程序对用户输入过滤及判断的不足,写入或插入可以显示在页面上对其他用户造成影响的代码。跨站注入的高级攻击就属于这种攻击。
3.1.4、SQL注入的危害
SQL注入通过网页对网站数据库进行修改。它能够直接在数据库中添加具有管理员权限的用户,从而最终获得系统管理员权限。黑客可以利用获得的管理员权限任意获得网站上的文件或者在网页上加挂木马和各种恶意程序,对网站的正常运营和访问该网站的网友都带来巨大危害。
3.1.5、SQL注入漏洞的风险
由于SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。它能够直接在数据库中添加具有管理员权限的用户,从而最终获得系统管理员权限。黑客可以利用获得的管理员权限任意获得网站上的文件或者在网页上加挂木马和各种恶意程序,对网站和访问该网站的网友都带来巨大危害。
无论你有多强壮的防火墙规则设置或者非常勤于补漏的修补机制,如果你的网络应用程序开发者没有遵循安全代码进行开发,攻击者将通过80端口进入你的系统。
例如,如果一个网站的数据库系统为SQL Server 2000数据库,同时没有在数据库的权限设置上做好安全限制,将导致严重的后果。SQL注入意味着数据库也会被攻破,入侵者得到当前数据库权限的同时,也获得了整个数据库服务器的管理权限,入侵者可通过数据库管理权限得到系统权限,并为所欲为。
再者,很多网站的管理后台都可经由公网直接访问到后台管理登录页面,并且可通过暴力猜解等方式对后台管理账户进行猜解。对于任何一个网站的后台管理登录页,安全的做法应该是限制访问。尤其是对于政府及银行网络来说,更不应该将后台管理页面放置到公网上任由访问,这样的话安全系数会大大减少,遭受攻击的机会却大大增加了。
3.2、网络钓鱼
网络钓鱼(Phishing)一词,是“Fishing”和“Phone”的综合体,由于黑客始祖起初是以电话作案,所以用“Ph”来取代“F”,创造了”Phishing”,Phishing 发音与 Fishing相同。 “网络钓鱼”就其本身来说,称不上是一种独立的攻击手段,更多的只是诈骗方法,就像现实社会中的一些诈骗一样。
攻击者利用欺骗性的电子邮件和伪造的Web站点来进行诈骗活动,诱骗访问者提供一些个人信息,如信用卡号、账户用和口令、社保编号等内容(通常主要是那些和财务,账号有关的信息,以获取不正当利益),受骗者往往会泄露自己的财务数据。
诈骗者通常会将自己伪装成知名银行、在线零售商和信用卡公司等可信的品牌,因此来说,网络钓鱼的受害者往往也都是那些和电子商务有关的服务商和使用者。
3.2.1、网络钓鱼工作原理
现在网络钓鱼的技术手段越来越复杂,比如隐藏在图片中的恶意代码、键盘记录程序,当然还有和合法网站外观完全一样的虚假网站,这些虚假网站甚至连浏览器下方的锁形安全标记都能显示出来。网络钓鱼的手段越来越狡猾,这里首先介绍一下网络钓鱼的工作流程。通常有五个阶段:
网络钓鱼的工作原理
3.2.2、“网络钓鱼”的主要手法
a、发送电子邮件,以虚假信息引诱用户中圈套
诈骗分子以垃圾邮件的形式大量发送欺诈性邮件,这些邮件多以中奖、顾问、对账等内容引诱用户在邮件中填入金融账号和密码,或是以各 种紧迫的理由要求收件人登录某网页提交用户名、密码、身份证号、信用卡号等信息,继而盗窃用户资金。
例如今年2月份发现的一种骗取美邦银行(Smith Barney)用户的账号和密码的“网络钓鱼”电子邮件,该邮件利用了IE的图片映射地址欺骗漏洞,并精心设计脚本程序,用一个显示假地址的 弹出窗口遮挡住了IE浏览器的地址栏,使用户无法看到此网站的真实地址。当用户使用未打补丁的Outlook打开此邮件时,状态栏显示的链接是虚假的。
当用户点击链接时,实际连接的是钓鱼网站http://**.41.155.60:87/s。该网站页面酷似Smith Barney银行网站的登陆界面,而用户一旦输入了自己的账号密码,这些信息就会被黑客窃取。
b、建立假冒网上银行、网上证券网站,骗取用户账号密码实施盗窃
犯罪分子建立起域名和网页内容都与真正网上银行系统、网上证券交易平台极为相似的网站,引诱用户输入账号密码等信息,进而通过真正的网上银行、网上证券系统或者伪造银行储蓄卡、证券交易卡盗窃资金;还有的利用跨站脚本,即利用合法网站服务器程序上的漏洞,在站点 的某些网页中插入恶意html代码,屏蔽住一些可以用来辨别网站真假的重要信息,利用cookies窃取用户信息。
如曾互联网上出现过的某假冒银行网站,网址为http://www.1cbc.com.cn/,而真正银行网站是http://www.icbc.com.cn/,犯罪分子利用数字1和字母i非常相近的特点企图蒙蔽粗心的用户。
又如2004年7月发现的某假公司网站(网址为http://www.1enovo.com/),而真正网站为 http://www.lenovo.com/,诈骗者利用了小写字母l和数字1很相近的障眼法。诈骗者通过QQ散布“XX集 团和XX公司联合赠送QQ币”的虚假消息,引诱用户访问。
c、利用虚假的电子商务进行诈骗
此类犯罪活动往往是建立电子商务网站,或是在比较知名、大型的电子商务网站上发布虚假的商品销售信息,犯罪分子在收到受害人的购物汇款后就销声匿迹。如2003年,罪犯佘某建立“奇特器材网”网站,发布出售间谍器材、黑客工具等虚假信息,诱骗顾主将购货款汇入其用虚假身份在多个银行开立的账户,然后转移钱款的案件。
除少数不法分子自己建立电子商务网站外,大部分人采用在知名电子商务网站上,如“易趣”、“淘宝”、“阿里巴巴”等,发布虚假信息,以所谓“超低价”、“免税”、“走私货”、“慈善义卖”的名义出售各种产品,或以次充好,以走私货充行货,很多人在低价的诱惑下上当受骗。网上交易多是异地交易,通常需要汇款。不法分子一般要求消费者先付部分款,再以各种理由诱骗消费者付余款或者其他各种名目的款项,得到钱款或被识破时,就立即切断与消费者的联系。
d、利用木马和黑客技术等手段窃取用户信息后实施盗窃活动
木马制作者通过发送邮件或在网站中隐藏木马等方式大肆传播木马程序,当感染木马的用户进行网上交易时,木马程序即以键盘记录的方式获取用户账号和密码,并发送给指定邮箱,用户资金将受到严重威胁。
如去年网上出现的盗取某银行个人网上银行账号和密码的木马Troj_HidWebmon及其变种,它甚至可以盗取用户数字证书。又如去年出现的木马“证券大盗”,它可以通过屏幕快照将用户的网页登录界面保存为图片,并发送给指定邮箱。黑客通过对照图片中鼠标的点击位置,就很有可能破译出用户的账号和密码,从而突破软键盘密码保护技术,严重威胁股民网上证券交易安全。
e、利用用户弱口令等漏洞破解、猜测用户账号和密码
不法分子利用部分用户贪图方便设置弱口令的漏洞,对银行卡密码进行破解。如2004年10月,三名犯罪分子从网上搜寻某银行储蓄卡卡号,然后登陆该银行网上银行网站,尝试破解弱口令,并屡屡得手。
实际上,不法分子在实施网络诈骗的犯罪活动过程中,经常采取以上几种手法交织、配合进行,还有的通过手机短信、QQ、msn进行各种各 样的“网络钓鱼”不法活动。
3.3、跨站攻击
XSS又叫CSS(Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入Web里面的html代码会被执行,从而达到攻击者的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人经常忽略其危害性。
就攻击者而言,可以把XSS攻击分成两类,一类是来自内部的攻击,主要指的是利用程序自身的漏洞,构造跨站语句,如:DVBBS的showerror.asp存在的跨站漏洞。另一类则是来自外部的攻击,主要指的攻击者构造XSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。如当攻击者要渗透一个站点,攻击者构造一个有跨站漏洞的网页,然后构造跨站语句,通过结合其它技术,如社会工程学等,欺骗目标服务器的管理员打开。
传统的跨站利用方式一般都是攻击者先构造一个跨站网页,然后在另一空间里放一个收集cookie的页面,接着结合其它技术让用户打开跨站页面以盗取用户的cookie,以便进一步的攻击。这种方式太过于落后,比较成熟的方法是通过跨站构造一个表单,表单的内容则为利用程序的备份功能或者加管理员等功能得到一个高权限。
当发动CSS攻击或检测一个网站漏洞的时候, 攻击者可能首先使简单的HTML标签如b(粗体),i(斜体)或u(下划线),或者他可能尝试简单的script标签如scriptalert("OK")/script。因为大多数出版物和网络传播的检测网站是否有css漏洞都拿这个作为例子。这些尝试都可以很简单的被检测出来。
然而,高明点的攻击者可能用它的hex值替换整个字符串。这样script标签会以%3C%73%63%72%69%70%74%3E出 现。 另一方面,攻击者可能使用web代理服务器像Achilles会自动转换一些特殊字符如换成%3C换成%3E。这样攻击发生时,URL 中通常以hex等值代替角括号。
3.4、溢出漏洞
溢出漏洞是一种计算机程序的可更正性缺陷。溢出漏洞的全名为“缓冲区溢出漏洞”。因为它是在程序执行的时候在缓冲区执行的错误代码,所以叫缓冲区溢出漏洞。它一般是由于编成人员的疏忽造成的。具体的讲,溢出漏洞是由于程序中的某个或某些输入函数(使用者输入参数)对所接收数据的边界验证不严密而造成。
根据程序执行中堆栈调用原理,程序对超出边界的部分如果没有经过验证自动去掉,那么超出边界的部分就会覆盖后面的存放程序指针的数据,当执行完上面的代码,程序会自动调用指针所指向地址的命令。根据这个原理,恶意使用者就可以构造出溢出程序。
大多数应用程序保存数据的存储地址大小是固定的。如果攻击者向这些存储区域之一中发送了过量数据,而程序没有检查数据的大小,则会发生溢出。攻击者针对这一特点发出的攻击称为缓冲区溢出攻击。
缓冲区是用户为程序运行时在计算机中申请得的一段连续的内存,它保存了给定类型的数据。缓冲区溢出指的是一种常见且危害很大的系统攻击手段,通过向程序的缓冲区写入超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其他的指令,以达到攻击的目的。
而人为的溢出则是有一定企图的,攻击者写一个超过缓冲区长度的字符串,然后植入到缓冲区,而再向一个有限空间的缓冲区中植入超长的字符串可能会出现两个结果,一是过长的字符串覆盖了相邻的存储单元,引起程序运行失败,严重的可导致系统崩溃;另有一个结果就是利用这种漏洞可以执行任意指令,甚至可以取得系统root特级权限。大多造成缓冲区溢出的原因是程序中没有仔细检查用户输入参数而造成的。
缓冲区溢出问题并非已成古老的历史,缓冲区溢出攻击已成为最常用的黑客技术之一。引起缓冲区溢出问题的根本原因是C(与其后代C++)本质就是不安全的,没有边界来检查数组和指针的引用,也就是开发人员必须检查边界(而这一行为往往会被忽视),否则会冒遇到问题的风险。标准C库中还存在许多非安全字符串操作,包括:strcpy()、sprintf()、gets()等,这些都是程序员需要注意的。
3.5、拒绝服务攻击
网络安全中,拒绝服务攻击(DOS)以其危害巨大,难以防御等特点成为骇客经常采用的攻击手段。DoS是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。
3.5.1、被拒绝服务攻击时的现象
最常见的DoS攻击有计算机网络带宽攻击和连通性攻击。带宽攻击指以极大的通信量冲击网络,大量攻击包导致网络带宽被阻塞,合法网络包被虚假的攻击包淹没而无法到达主机,使得所有可用网络资源都被消耗殆尽,最后导致合法的用户请求就无法通过。连通性攻击指用大量的连接请求冲击计算机,通过大量攻击包导致主机的内存被耗尽或CPU被内核及应用程序占完而造成无法提供网络服务,使得所有可用的操作系统资源都被消耗殆尽,最终服务器无法再处理合法用户的请求。
如何判断网站是否遭受了流量攻击呢?可通过Ping命令来测试,若发现Ping超时或丢包严重(假定平时是正常的),则可能遭受了流量攻击,此时若发现和你的主机接在同一交换机上的服务器也访问不了了,基本可以确定是遭受了流量攻击。当然,这样测试的前提是你到服务器主机之间的ICMP协议没有被路由器和防火墙等设备屏蔽,否则可采取Telnet主机服务器的网络服务端口来测试,效果是一样的。不过有一点可以肯定,假如平时Ping你的主机服务器和接在同一交换机上的主机服务器都是正常的,突然都Ping不通了或者是严重丢包,那么假如可以排除网络故障因素的话则肯定是遭受了流量攻击,再一个流量攻击的典型现象是,一旦遭受流量攻击,会发现用远程终端连接网站服务器会失败。
相对于流量攻击而言,资源耗尽攻击要容易判断一些,假如平时Ping网站主机和访问网站都是正常的,发现突然网站访问非常缓慢或无法访问了,而Ping还可以Ping通,则很可能遭受了资源耗尽攻击,此时若在服务器上用netstat -an命令观察到有大量的SYN_RECEIVED、TIME_WAIT、FIN_WAIT_1等状态存在,而ESTABLISHED很少,则可判定肯定是遭受了资源耗尽攻击。还有一种属于资源耗尽攻击的现象是,Ping自己的网站主机Ping不通或者是丢包严重,而Ping与自己的主机在同一交换机上的服务器则正常,造成这种原因是网站主机遭受攻击后导致系统内核或某些应用程序CPU利用率达到100%无法回应Ping命令,其实带宽还是有的,否则就Ping不通接在同一交换机上的主机了。
3.5.2、总结为以下几个典型特徵:
被攻击主机上有大量等待的TCP连接
网络中充斥着大量的无用的数据包,源地址为假
制造高流量无用数据,造成网络拥塞,使受害主机无法正常和外界通讯
利用受害主机提供的服务或传输协议上的缺陷,反复高速的发出特定的
服务请求,使受害主机无法及时处理所有正常请求
严重时会造成系统死机
在2006年,拒绝服务攻击已经被提升到了利用僵尸网络BotNet进行大批量攻击的层次,其严重程度已经达到了阻塞国内网络的程度。根据今年上半年监测的数据,中国拥有的“僵尸网络”电脑数目最多,全世界共有470万台,而中国就占到了近20%。而据国内不完全统计,中国拥有的“僵尸网络”电脑数量达到120万台,其严重性已不可忽视。
3.6、社会工程学
我们通常把基于非计算机的欺骗技术叫做社会工程。社会工程中,攻击者设法设计让人相信它是其他人。这就像攻击者在给人打电话时说自己是某人一样的简单。因为他说了一些大概只有那个人知道的信息,所以受害人相信他。
社会工程的核心是,攻击者设法伪装自己的身份并设计让受害人泄密私人信息。这些攻击的目标是搜集信息来侵入计算机系统的,通常通过欺骗某人使之泄露出口令或者在系统中建立个新帐号。其他目标使侦察环境,找出安装了什么硬件和软件,服务器上装载了什么补丁等等。
通过社会工程得到的信息是无限的,其严重程度亦可从大量用户被网络钓鱼事件中窥见一斑,攻击者可利用网络钓鱼获得的信息尝试用户信箱及即时通讯工具的账户,从而获取有用的信息。
4、2007年黑客攻击水平会发展到惊人的程度之上
虽然Botnet在最近几个月引发了大量的垃圾邮件,但是,安全研究人员更警惕的是垃圾邮件的高级水平。安全人员警告说,有针对性的钓鱼攻击正在进入企业电子邮件服务器。
垃圾邮件已经达到了我们通常所说的商业级产品的水平。我们已经看到了这种活动的变化。现在,Botnet发出大量单独的垃圾邮件。
根据MessageLabs的统计,今年11月份全球垃圾邮件的通信量已经增长到了占全球电子邮件通信量的90%。这个百分比预计在今年12月份将继续保持下去。
此外,在200封电子邮件中至少有一封电子邮件包含钓鱼攻击的内容。最近拦截的恶意电子邮件中,有68%以上的恶意邮件是钓鱼攻击邮件,比过去的几个月增长了。
安全研究人员预计,2007年将是攻击的高级程度发展到惊人的水平的一年。
攻击者将搜索MySpace等社交网络网站,窃取地址、地区号码和其他身份数据以便使钓鱼攻击电子邮件让受害者看起来像真的一样。
在许多情况下,坏分子可能使用银行的地址,让受害者以为电子邮件是从银行发出来的,从而使钓鱼攻击获得成功。这些坏分子将抢劫大型社交网络团体的数据库,利用垃圾邮件成功地实施攻击。
安全公司赛门铁克的高级工程经理Alfred Huger说,每一天发生的钓鱼攻击的企图高达700多万起,并称,不成熟的钓鱼攻击已经显著增加到了每天900起以上。
攻击者将从住在同一个地区的人们那里收集电子邮件地址。然后,攻击者向受害者发出一封钓鱼攻击电子邮件。这种电子邮件表面上看好像是从那个地区的银行或者其它金融机构那里发来的。进入到2007年,Huger预测,钓鱼攻击将变得更加有针对性并且更难发现其欺骗性。
可信赖的因素非常高,人们更容易成为这种攻击的猎物,因为人们想不到自己的银行会参与这种事情。
随着具有电子邮件和其它消息功能的手机的应用,使用短信实施的钓鱼攻击在2007年也将增长。我们的手机现在已经成为微型的计算机,任何在台式电脑上发生的事情都可能对我们的手机产生影响。一些企业已经开始制定有关移动设备
使用的政策,还有一些企业没有制定这种政策。中间地带并不大。
企业和消费者能够采取基本的措施进行反击。金融机构将改善身份识别功能和加强教育的努力,以便帮助客户理解他们的银行什么时候将与他们进行合法的联系。消费者可以向赛门铁克反钓鱼攻击网站举报钓鱼网站以便与网络诈骗作斗争。
Rootkit在增长
攻击者在2006年更广泛地应用rootkit技术。这种技术的应用在2007年将继续增长。rootkit是一种软件工具集,能够让网络管理员访问一台计算机或者一个网络。一旦安装了rootkit,攻击者就可以把自己隐藏起来,在用户计算机中安装间谍软件和其它监视敲击键盘以及修改记录文件的软件。虽然微软发布的Vista操作系统能够减少某些rootkit的应用,但是,rootkit的使用在2007年将成为标准。据赛门铁克称,用户模式rootkit策略目前已经非常普遍。内核模式rootkit的使用也在增长。
Rootkit是一种功能更强大的工具。我们将看到更多的rootkit,因为安全产品正在变得越来越强大,攻击者不得不提高赌注。
selenium webdriver中怎样触发table区内文本按钮事件
Selenium不能处理以下事件:
1) 本机键盘和鼠标事件
2) 同源策略XSS/HTTP(S)
3) 弹出框,对话框(基本身份认证,自签名的证书和文件上传/下载)
1、WebDriver 工程在构建之后不需要其他的配置我们便可以直接使用,这一点和 Selenium 是截然不同的。因为 Selenium 还需要安装并启动 Selenium Server 才能运行测试程序。
如何成为前端工程师?
一、技术的必须的
作为一名最基础的前端工程师你必须掌握HTML、CSS和JavaScript。三者必须同时精通,类似我字样对前端知识一知半解的,一遇到问题就停下工作就四处搜索解决方案的,首先就算不上一个合格的前端人员。像我这样的如果当了前端工程师那工期肯定是不能保证的。合格的前端工程师第一要学会的就是在没有任何外来帮助的情况下(包括搜索引擎),能够完成大多数任务。
以下知识点是作为一个前端工程师必须了解和熟悉的:
DOM结构——两个节点之间可能存在哪些关系以及如何在节点之间任意移动。
DOM操作——怎样添加、移除、移动、复制、创建和查找节点。
事件——怎样使用事件以及IE和DOM事件模型之间存在哪些主要差别。
XMLHttpRequest——这是什么、怎样完整地执行一次GET请求、怎样检测错误。
严格模式与混杂模式——如何触发这两种模式,区分它们有何意义。
盒模型——外边距、内边距和边框之间的关系,IE 8中的盒模型有什么不同。
块级元素与行内元素——怎么用CSS控制它们、它们怎样影响周围的元素以及你觉得应该如何定义它们的样式。
浮动元素——怎么使用它们、它们有什么问题以及怎么解决这些问题。
HTML与XHTML——二者有什么区别,你觉得应该使用哪一个并说出理由。
JSON——它是什么、为什么应该使用它、到底该怎么使用它,说出实现细节来。
上述这些知识点都应该是你“想都不用想”就知道的东西。除了上述的前端知识,也还需学会至少一门后端编程语言,让你自己学会如何与后端进行更好的交互。
很多前端工程师对一些库非常的熟悉,jQuery,Bootstrap等,但是对于库的熟悉并不能提现你的优秀,整整优秀的是那些理解库背后的机制,特别是能够徒手写出一个自己的库的人。
真正合格的前端工程师是能实现具体的功能要求,而优秀的前端工程师需要解决的问题是寻找一个最优的解决方案。
二、沟通很重要
优秀的前端工程师需要具备良好的沟通能力,因为你的工作与很多人的工作息息相关。在任何情况下,前端工程师至少都要满足下列四类客户的需求。
产品经理——这些是负责策划应用程序的一群人。他们能够想象出怎样通过应用程序来满足用户需求,以及怎样通过他们设计的模式赚到钱(但愿如此)。一般来说,这些人追求的是丰富的功能。
UI设计师——这些人负责应用程序的视觉设计和交互模拟。他们关心的是用户对什么敏感、交互的一贯性以及整体的好用性。他们热衷于流畅靓丽但并不容易实现的用户界面。
项目经理——这些人负责实际地运行和维护应用程序。项目管理的主要关注点,无外乎正常运行时间——应用程序始终正常可用的时间、性能和截止日期。项目经理追求的目标往往是尽量保持事情的简单化,以及不在升级更新时引入新问题。
最终用户——当然是应用程序的主要消费者。尽管我们不会经常与最终用户打交道,但他们的反馈意见至关重要;没人想用的应用程序毫无价值。最终用户要求最多的就是对个人有用的功能,以及竞争性产品所具备的功能。
不要在没有作出评估之前就随便接受某项任务。你必须始终记住,一定先搞清楚别人到底想让你干什么,不能简单地接受“这个功能有问题”之类的大概其的说法。而且,你还要确切地知道这个功能或设计的真正意图何在。“加一个按钮”之类的任务并不总意味着你最后会加一个按钮。还可能意味着你会找产品经理,问一问这个按钮有什么用处,然后再找UI设计师一块探讨按钮是不是最佳的交互手段。要成为优秀的前端工程师,这种沟通至关重要。
那么,前端工程师应该最关注哪些人的意见呢?答案是所有这四类人。优秀的前端工程师必须知道如何平衡这四类人的需求和预期,然后在此基础上拿出最佳解决方案。由于前端工程师处于与这四类人沟通的交汇点上,因此其沟通能力的重要性不言而喻。如果一个非常酷的新功能因为会影响前端性能,必须删繁就简,你怎么跟产品经理解释?再比如,假设某个设计如果不改回原方案可能会给应用程序造成负面影响,你怎么才能说服UI设计师?作为前端工程师,你必须了解每一类人的想法从何而来,必须能拿出所有各方都能接受的解决方案。从某种意义上说,优秀的前端工程师就像是一位大使,需要时刻抱着外交官的心态来应对每一天的工作。
专业技术可能会引领你进入成为前端工程师的大门,但只有运用该技术创造的应用程序以及你跟他人并肩协同的能力,才会真正让你变得优秀。
三、提升无止境
优秀的前端工程师应该具备快速学习能力。推动Web发展的技术并不是静止不动的,这些技术几乎每天都在变化,如果没有快速学习能力,你就跟不上Web发展的步伐。你必须不断提升自己,不断学习新技术、新模式;仅仅依靠今天的知识无法适应未来。Web的明天与今天必将有天壤之别,而你的工作就是要搞清楚如何通过自己的Web应用程序来体现这种翻天覆地的变化。
四、前端开发知识架构
前端工程师
SVG/Canvas/VML
D3/Raphaël/DataV
知识管理/总结分享
沟通技巧/团队协作
需求管理/PM
交互设计/可用性/可访问性知识
编译原理
计算机网络
操作系统
算法原理
软件工程/软件测试原理
D2/WebRebuild
NodeParty/W3CTech/HTML5梦工厂
JSConf/沪JS(JSConf.cn)
QCon/Velocity/SDCC
JSConf/NodeConf
YDN/YUIConf
MongoDB/CouchDB
HTML5/CSS3
响应式设计
Zeptojs/iScroll
V5/Sencha Touch
PhoneGap
jQuery Mobile
CSRF/XSS
ADsafe/Caja/Sandbox
类库模块化
业务逻辑模块化
文件加载
CommonJS/AMD
YUI3模块
LABjs
SeaJS/Require.js
压缩合并
文档输出
项目构建工具
YUI Compressor
Google Clousure Complier
CleanCSS/UglifyJS
JSDoc
Dox/Doxmate
make/Ant
GYP
Grunt
Yeoman
数据结构
OOP/AOP
原型链/作用域链
闭包
函数式编程
设计模式
Javascript Tips
JSPerf
YSlow 35 rules
PageSpeed
HTTPWatch
DynaTrace’s Ajax
高性能JavaScript
HTTP1.1
ECMAScript3/5
W3C/DOM/BOM/XHTML/XML/JSON/JSONP
CommonJS/AMD
HTML5/CSS3
jQuery/Underscore/Mootools/Prototype.js
YUI3/Dojo/ExtJS
Backbone/KnockoutJS/Emberjs
Coding style
单元测试
自动化测试
JSLint/JSHint
CSSLint
Markup Validation Service
QUnit/Jasmine
Mocha/Should/Chai
WebDriver
IDE
调试工具
版本管理
VIM/Sublime Text2
Notepad++/EditPlus
WebStorm
Firebug/Firecookie
YSlow
IEDeveloperToolbar/IETester
Fiddler
Git/SVN
Github/Bitbucket/Google Code
HTML/HTML5
CSS/CSS3
PhotoShop/Paint.net
JavaScript/Node.js
JavaScript语言精粹
IE6/7/8/9
Firefox
Chrome/Safari/Opera
浏览器
编程语言
切页面
开发工具
代码质量
前端库/框架
前端标准/规范
性能
编程知识储备
部署流程
代码组织
安全
移动Web
JavaScript生态
前沿技术社区/会议
计算机知识储备
软技能
可视化
后端工程师
Unix/Linux/OS X/Windows
SQL
MySQL/MongoDB/Oracle
C/C++/Java/PHP/Ruby/Python/…
编程语言
数据库
操作系统
数据结构
参考链接:
http://www.cn-cuckoo.com/2010/01/10/nicholas-c-zakas-talk-about-what-makes-a-good-front-end-engineer-1356.html
JacksonTian/fks · GitHub
selenium和webdriver的区别
Selenium不能处理以下事件:
1) 本机键盘和鼠标事件
2) 同源策略XSS/HTTP(S)
3) 弹出框,对话框(基本身份认证,自签名的证书和文件上传/下载)
1、WebDriver 工程在构建之后不需要其他的配置我们便可以直接使用,这一点和 Selenium 是截然不同的。因为 Selenium 还需要安装并启动 Selenium Server 才能运行测试程序。
2、 Selenium 提供的是基于字典的 API,用户可以很方便的看到所以支持的方法。毋庸置疑的是,WebDriver 提供的 API 更为简洁,对用户更加的友好。
3、Selenium 是由一堆 JavaScript 实现的,所以只要支持 JavaScript 的浏览器 Selenium 都可以做到很好的支持,比 WebDriver 能支持更多的浏览器而且不需要做额外的开发
以上皆是selenium和webdriver的区别。
xss怎么用键盘玩
可以链接键盘鼠标。
ps4和xboxone都支持键鼠,但能不能直插使用要看厂商开不开放,跟索尼微软无关。box Series X可以连接有线键盘和鼠标,以及部分无线设备 ,插上线就能玩的。
xss可以搭wlan信号桥吗
可以
1、鼠标点击“开始”菜单,选择“控制面板”选项,在打开的"控制面板”窗口中双击“网络图
标”选项。2、在打开的“网络连接”界面中,鼠标右击“无线网络连接”图标,选择“属性”选项。3、在弹出的“无线网络连接属性”对话框中切换到"无线网络配置”标签,鼠标点击选中“用Windows系统来配置我的无线网络配置”复选项。4、鼠标单击“高级”按钮,在打开的“高级”对话框中选择“仅计算机到计算机(特定)”选项;(如果希望在保留连接到接入点的.情况下直接连接到计算机中,可以用鼠标选择“任何可用的网络(首选访问点)”选项)。5、鼠标依次单击“关闭”按钮退出设置界面,单击"确定”按钮完成无线局域网的无线连接设置工作,设置结束。
xss攻击危害有哪些
、对于那些半年没有更新的小企业网站来说,发生XSS漏洞几乎没有什么用
2、但是在各类的社交平台,邮件系统,开源流行的Web应用,BBS,微博等场景中,造成的杀伤力却十分强大。
3、劫持用户cookie是最常见的跨站攻击形式,通过在网页中写入并执行脚本执行文件(多数情况下是JavaScript脚本代码),劫持用户浏览器,将用户当前使用的sessionID信息发送至攻击者控制的网站或服务器中。
4、又可以称为“框架钓鱼”。利用JS脚本的基本功能之一:操作网页中的DOM树结构和内容,在网页中通过JS脚本,生成虚假的页面,欺骗用户执行操作,而用户所有的输入内容都会被发送到攻击者的服务器上。
5、挂马(水坑攻击)
6、有局限性的键盘记录
概念
跨站脚本 ( Cross-Site Scriptin ) 简称xss,是由于Web应用程序对用户的输入过滤不足而产生的.攻击者利用网站漏洞把恶意的脚本代码(通常包括HTML代码和客户端 Javascript脚本)注入到网页之中,当其他用户浏览这些网页时,就会执行其中的恶意代码,对受害用户可能采取 Cookie资料窃取、会话劫持、钓鱼欺骗等各种攻击.
危害
1、网络钓鱼,包括盗取各类用户账号;
2、窃取用户cookies资料,从而获取用户隐私信息,或利用用户身份进一步对网站执行操作;
3、劫持用户(浏览器)会话,从而执行任意操作,例如进行非法转账、强制发表日志、发送电子邮件等;
4、强制弹出广告页面、刷流量等;
5、网页挂马,进行恶意操作,例如任意篡改页面信息、删除文章等;
6、进行大量的客户端攻击,如DDoS攻击;
7、获取客户端信息,例如用户的浏览历史、真实IP、开放端口等;
8、控制受害者机器向其他网站发起攻击;
9、结合其他漏洞,如CSRF漏洞,实施进一步作恶;
10、提升用户权限,包括进一步渗透网站;
11、传播跨站脚本蠕虫等;
selenium webdriver 和 selenium rc 什么区别
1、
我们平时所说的selenium说的都是selenium1(有名Selenium
RC),他曾经有个非常强的竞争对手就是Webdriver,后来Selenium团队发布了Selenium2。Selenium2=
Selenium1+webdriver,这样的组合使Selenium的功能增强了n倍,用户也可以很自由的选择自己喜欢的工具。
2、 什么是Webdriver?
WebDriver是一个用来进行复杂重复的web自动化测试的工具。意在提供一种比Selenium1.0更简单易学,有利于维护的API。它没
有和任何测试框架进行绑定,所以他可以很好的在单元测试和main方法中调用。一旦创建好一个Selenium工程,你马上会发现WebDriver和其
他类库一样:它是完全独立的,你可以直接使用而不需要考虑其他配置,这个Selenium RC是截然相反的。
3、 Selenium1.0的缺点?
Selenium1.0不能处理以下事件:
1) 本机键盘和鼠标事件
2) 同源策略XSS/HTTP(S)
3) 弹出框,对话框(基本身份认证,自签名的证书和文件上传/下载)
4、 Selenium2有什么好处?
当这两个框架被合并后,一个框架的缺陷被另一个框架所弥补。WebDriver对浏览器的支持需要对应框架开发工程师做对应的开发;同样
Selenium必须操作真实浏览器,但是WebDriver可以HTML unit
Driver来模拟浏览器,在内存中执行用例,更加的轻便。Selenium1.0解决了自动化测试中的一些常见问题,WebDriver更好的解决了沙
箱限制。WebDriver不支持并行,但是Selenium Grid解决了这个问题。