新手科普 | 通过DVWA学习XSS
这篇文章通过dvwa简单研究了三种类型的xss,并且讲述了如何利用xss获取目标网站用户的cookie。dvwa反射型xss测试环境一台win2003虚拟机,ip为192.168.50.128,用wamp集成环境将dvwa搭在8080端口。一台win7虚拟机,ip为192.168.50.150,用来接受漏洞网站的cookie,web由phpstudy搭建。low级别为了便于理解,代码如下:Hello'.$_GET['name'].'';}?>可以看出没有任何过滤,直接将用户提交的GET参数name输出到页面,我们可以输入payload。来验证xss的存在。
哔哩哔哩(B站)的前端之路
哔哩哔哩(B站)的前端之路2017年即将过去了,总结一下B站的前端进阶之路过去的开发模式中,我们采用了以后端为主的MVC架构方式。具体来说,每次项目评审后,前后端会先一起约定好接口,之后分别进行开发,开发完,前端需要把页面提供给后端,后端配置上数据,然后返回出来。正式基于这样的开发模式,导致了总工作量的增加,同时沟通和联调成本的消耗也十分显著。前后端分离为了摆脱这种前后端过分依赖的情况,(其实前端也不想每次修改或者发布都要后端这边发布,后端也不想每次前端只改个标题,都要发布一下,影响服务的稳定性),那么先从前后端分离开始吧~前后端分离,最基本的两种模式,有中间层和没有中间层。第一种,没有web中间层就很简单,提供一个html模板放到静态资源机上面,html模板里面引用了所需的js和css,访问页面的时候把这个静态模板返回给用户,然后执行js在浏览器端通过ajax请求api拿到数据,渲染页面。
最早做游戏设计与开发的女程序员
本文由伯乐在线-精算狗翻译,黄利民校稿。未经许可,禁止转载!英文出处:BENJEDWARDS。欢迎加入翻译组。第一批电子游戏程序员之一是一位年轻女性,那时她刚从高中毕业。四十年前,消费电子产品巨头RAC发布了StudioII。这是一款可编程的电子游戏控制台,与FairchildChannelF一起,率先使用只读存储器盒(ROMcartridge)作为可交换的游戏媒体。RCA的控制台永远没能比得上Atari的VCS,Magnavox的Odyssey,或者Mattel的Intellivision。而且现在几乎没人记得它。但是它背后的真实故事是迷人的。它的基础技术始于1969年,当时一位有远见的人——JosephWeisbecker——在家中开发出个人电脑。他的女儿Joyce最终成为了已知最早的女性开发者,她编写电子游戏并为此拿报酬。JoyceWeisbecker的工作成果太不出名了,以至于在2011年,我宣称CarolShaw为“第一位女性专业电子游戏设计师”。Caro
2017-12-30 勇敢做自己
今天是我第一次写日记,之前很想写,但是每次到最后都没有去做,成为了马云先生所讲的晚上想想千条路,早上起来走原路的人。我想改变这样的自己,今天是第一天,希望我能坚持下去。我人生中,遇到了第一个坎,前天我在没有找好下家的情况下,向领导提出了辞职。很傻,但是我没有后悔。有人说那是因为你还没离开,离开你就后悔了,我没经历过,所以我想说,最起码在这一刻,我是不后悔的。我大学读的是计算机专业,性格偏内向和老实。当时心里想的就是学一份技术,就这样我选择了软件编程方向,毕业后成为了一个程序员。7月份正式入职,到今天刚好半年,试用期结束,转正了。我技术一般,属于程序员中比较差的那种,学习时候属于只爱看不爱敲那种。其实在上学期间我就发现过我长时间对电脑屏幕会有点不舒服,所以在选工作的时候,我没有选择可以拿高薪的北京,而来到了美丽的海边城市大连,一方面我是东北人,对东北有着家的感觉,另一方面我知道北京的编程工程师加班情况严重我自己会不适应,所以我选择了大连的外包公司。入职门槛也不高,我就顺利的被录取了。
MySQL-InnoDB-MVCC多版本并发控制
MVCC(MultiversionConcurrencyControl)1.先引用《高性能MySQL》中对MVCC的部分介绍MySQL的大多数事务型存储引擎实现的其实都不是简单的行级锁。基于提升并发性能的考虑,它们一般都同时实现了多版本并发控制(MVCC)。不仅是MySQL,包括Oracle,PostgreSQL等其他数据库系统也都实现了MVCC,但各自的实现机制不尽相同,因为MVCC没有一个统一的实现标准。可以认为MVCC是行级锁的一个变种,但是它在很多情况下避免了加锁操作,因此开销更低。虽然实现机制有所不同,但大都实现了非阻塞的读操作,写操作也只锁定必要的行。MVCC的实现方式有多种,典型的有乐观(optimistic)并发控制和悲观(pessimistic)并发控制。MVCC只在READCOMMITTED和REPEATABLEREAD两个隔离级别下工作。其他两个隔离级别够和MVCC不兼容,因为READUNCOMMITTED总是读取最新的数据行,而不是符合当前事务版本的数据行。而SE
Babel 配置 Source Maps
Babel是一个JavaScript编译器,通过语法转换器支持最新版本的JavaScript,将其转译为能在旧版本浏览器或仅支持旧版本JavaScript的环境中能运行的脚本。由于经过了这么一次转义,直接在浏览器或Node.js环境中运行的脚本将不再是我们最初所编写的代码了。因此,我们需要配置SourceMaps,从而可以在调试时能够继续调试我们原始编写的代码。在命令行上配置要在命令上配置Babel在生成js文件的同时生成对应的SourceMaps,我们可以用-s或--source-maps选项,并以true或inline作为参数;也可以不提供任何参数,效果与true等同。如:babel-s-dlibsrc#或babel-strue-dlibsrc#或babel-sinline-dlibsrc在.babelrc中配置.babelrc是Babel命令行(CLI)及API都会读取的配置文件,在.babelrc中
谈谈CommonsChunkPlugin抽取公共模块
引言webpack插件CommonsChunkPlugin的主要作用是抽取webpack项目入口chunk的公共部分,具体的用法就不做过多介绍,不太了解可以参考webpack官网介绍;该插件是webpack项目常用的一个优化功能,几乎在每个webpack项目中都会用到。使用该插件带来的好处:提升webpack打包速度和项目体积:将webpack入口的chunk文件中所有公共的代码提取出来,减少代码体积;同时提升webpack打包速度。利用缓存机制:依赖的公共模块文件一般很少更改或者不会更改,这样独立模块文件提取出可以长期缓存。但是在项目中,若插件打开方式不正确的话,上面的第二点其实是无法实现,因为这种情况下:没有被修改过的公有代码或库代码打包出的EntryChunk,会随着其他业务代码的变化而变化,导致页面上的长缓存机制失效。那么,下面就来开启CommonsChunkPlugin正确的打开方式。CommonsChunkPlugin不正确用法假如将我们项目的公共库如react、react-dom、react-route
css:background-position > 精灵技术
css:background-position>精灵技术background-position:length||lengthbackground-position:position||position取值:length:百分数|由浮点数字和单位标识符组成的长度值。请参阅长度单位position:top|center|bottom|left|center|right实例"topleft","lefttop"和"0%0%","0,0"代表元素的左上角;"top","topcenter","centertop"和"50%0"表示在元素顶边居中位置;"righttop","topright"和"100%0"代元素的是元素的右上角位置;"left","leftcenter","centerleft"和"0%50%"表示在元素左边中间位置;"center","centercenter"和"50%50%"表示在元素中间位置;"rig
我的2017年的年终总结
引言:这么快,2017年就结束了,感觉时间太快了,眨眼之间,就已步入沉重的中年。2016年未正式接触博客园,一直在CSDN上混,2017年接触了博客园,觉得博客园的文风和code是一种很舒服的感觉,才慢慢喜欢用起园子了,也算自己的一亩三分地了。以前从来没有认认真真的以文案的形式做个年终总结,也许最近中兴跳楼员工的新闻让自己感觉心有同感,才感觉自己的压力是如此巨大。工作:跳槽:2016年做完郑州日产的工作流项目,因为神龙没有新的.net项目,外包公司就会想办法将人员派到别的项目。可是这些项目都是需要驻场开发,需要长时间的远距离出差。郑州日产的项目就已经体验到了。那段黑白无常的加班时光仍让自己心有余悸。为了摆脱这种飘渺不定的状态,且自己已经有了自己的家庭,果断辞去了软通的工作,正式开始寻找新的工作。可是武汉的工资水平真的太低廉了,中国人的劳动力真的太廉价了。为了寻找到自己满意的工作,我开始全武汉的奔跑。为了工作,面试的HR直接丢过来
Spring boot 集成Kafka+Storm
由于业务需求需要把Strom与kafka整合到springboot项目里,实现其他服务输出日志至kafka订阅话题,storm实时处理该话题完成数据监控及其他数据统计,但是网上教程较少,今天想写的就是如何整合storm+kafka到springboot,顺带说一说我遇到的坑。使用工具及环境配置1.java版本jdk-1.82.编译工具使用IDEA-20173.maven作为项目管理4.springboot-1.5.8.RELEASE需求体现1.为什么需要整合到springboot为了使用springboot统一管理各种微服务,及同时避免多个分散配置2.具体思路及整合原因使用springboot统一管理kafka、storm、redis等所需要的bean,通过其他服务日志收集至Kafka,KafKa实时发送日志至storm,在strombolt时进行相应的处理操作遇到的问题1.使用springboot并没有相关整合storm2.以springboot启动方式不
Spring Boot 整合ActiveMQ的过程
安装ActiveMQ服务器,(也可以不安装,如果不安装,会使用内存mq)构建Springboot项目,增加依赖项,只需要添加这一项即可
简简单单spring-boot整合RabbitMQ
springboot框架学习12-springboot整合activemq方法1本章节主要内容:主要从以下几个方面讲解:mybatis和springboot整合、redis(单机版)和springboot整合、redis(集群)和springboot整合、httpclient和springboot整合、rabbitMQ/activeMQ和...
程序员面试金典 Cracking the Coding Interview(含单元测试和训练模式)持续更新中
AcknowledgementCreditsshouldgotoGayleLaakmannMcDowellforhergreatworkonCrackingtheCodingInterview.WhythisrepoCtcistandsoutamongmanyinterviewbooksbyprovidingnotonlyquestionsbutalsoincrementalhintsandsolutions.However,Ctcidoesn'tcomewithtests.Thisrepoattemptstofillthisgapbyaddingtestsforeachquestion.First,writingtestshelpstounderstandthequestion.Second,wecanimproveourtestingskillsLastbutnotleast,tests
阿里巴巴300K程序员告诫广大程序员必须掌握三技能?
马云2017年开春之际,阿里诚意献上重磅大礼:《阿里巴巴Java开发手册》,首次公开阿里官方Java代码规范标准。这套Java统一规范标准将有助于提高行业编码规范化水平,帮助行业人员提高开发质量和效率、大大降低代码维护成本先推荐下我自己的大神Java交流群:561614305,里面有Java高级大牛直播讲解知识点走的就是高端路线,另外群文件已经准备好阿里巴巴java开发手册给大家学习。alibaba下面是阿里巴巴Java开发手册里面学习到程序员必须掌握技能:1.一技之长新技术层出不穷,而内核的精髓的东西却变化不大,就像.NET,从VS2003到VS2012,已经有10个年头,VS的版本不断更新,而.NET内核的最新版本也才4.0,所以,作为程序员,我们要多掌握内核的东西,精髓的东西。我们的学习积累毛病在于:贪多、贪全、而不够深入。对于很多技术,我们都很有兴趣,对于刚兴起的技术,也紧紧跟随。但是,几乎都是蜻蜓点水、一知半解。回头想想,我们似乎什么都会一点,什么类型的项目都可以做,B/S的、C/S的、数据库的、分布式的,等
2017年12月iOS找工作经历
在一家创业公司带了两年之后,这家公司的寿命走到了尽头(投资人撤资),公司解散...眼看要过年,却又又又要找工作了。。。从十二月五号开始投简历,到入职前前后后花了25天时间,期间面试了9家公司收到2个offer,最后也顺利入职自己心仪的公司。面试的公司类型包括:外包公司、教育(音乐教育方向和一家小学数学教育方向)、金融类型、医疗类型、电子商务。不得不说求职面试是一件很辛苦的事情,整天在外面奔走,是真的真的真的很累。不过结果还算满意。期间有很多第一次遇到的事情,值得记录一下这次的求职之旅。浪费时间有家公司(名字我就不说了)真的是感觉在玩弄求职者,事先hr电话约好的时间,跑到地方hr先面10分钟,说稍等,一会技术来面,等了一会,人事回来说“我们技术人员大致看了看你的简历,感觉不太符合我们公司的业务,今天就到这里吧”。当时内心瞬间就奔腾了,难道你们约人面试之前就不筛选一下简历吗?这样真的好吗?第一次遇到这样奇葩的公司,也是醉了。反悔最奇葩的一件事,也是我第一次遇到。这天天气很好,上午没有面试我就补了个觉(前一天面了两家,真的很累),下午有一家面试
web前端vue:是这样绑定vue的Class与Style
vue页面结构大家都知道vue是以数据为驱动,不像传统的开发方式是以点击事件来驱动的怎么一个东东。vue我也接触了一个不短的时间了,从最初的不适应到现在运用的熟悉(不适应是用惯了Jquery的“$”还真不习惯vue的这套)但是呢!技术都是在进步的,你不进步就意味着被淘汰。学过vue的肯定都知道vue的指令吧?传统网页制作要动态的改变页面上的样式,是要写不少东东吧比如:一个触发的事件,写好两种状态的样式,写好js或者jquery(当然还有些伙伴是直接写在js或jquery里,这是相对于样式少的才会怎么做),而vue因为数据驱动它感觉上就没有那么繁琐了比如以下例子:
我的 2017 年终总结
整个毕业季从四月开始,六月结束,期间真的是一件很没有实感的事情。生活在学校里时常会觉得,校园生活是永恒的,暑假过了就会有寒假,可以无穷无尽一直继续下去。但现实并非如此呀,早晚我们都要对一些习以为常的事情做告别,毕业就是这样一件事情,而大学毕业更加不同的是,从这里离开,你极可能就不会再回到校园了,或者说,你从此以后就再也不是学生了。我会怀念我的学生时代吗?那当然是怀念的,但如果问我现在的生活和学生时代的生活更喜欢哪一个,那我肯定会回答前者。因为我觉得现在工作的时光,比过去的任何时候都更能让我感到兴奋和激励,做出的每一个行动都能立刻得到反馈,投入的每一秒时间都能看到收益,这种真实的感觉比起学生时代的茫然好太多了。技术相关今年是我正式工作的第一个半年,在技术领域上也成长了不少。第一次体会到自己写下的页面日均都有上百万甚至千万的访问量是什么体验、第一次参与到一个超大型的复杂web应用的开发中去、第一次开始在开源社区中活跃并且承担社区日常事务,这些都发生在2017年。1、Node.js社区今年达成的一项最大的成就应该就是这个了
跳槽必备:JavaScript面试热点之闭包技巧
变量作用域JavaScript有两种变量:局部变量和全局变量。局部变量:是指只能在本变量声明的函数内部调用。全局变量:是整个代码中都可以调用的变量。我们知道,在JS中变量是需要用var关键字声明的。但是JS中也可以隐式的使用变量,就是不用声明,直接使用。而且,千万注意,JS把隐式声明的变量总是当成全局变量来使用的。
强大的Java前台后台开发工具
常用的文本编辑器:SublimeText、Notepad++、EditPlus等常用的IDE:WebStorm、IntellijIDEA、Eclipce等我们这里主要介绍如何使用SublimeText编辑器,它基本满足我们对前端开发工具的需求。一、SublimeText的特点:跨平台、启动快多行选择各种实用插件Snippets支持VIM兼容模式SublimeText获取地址:http://www.sublimetext.com/二、常用的插件PackageControl:安装其他插件之前,首先先安装PackageControlEmment:Web开发者的工具包,可以大大提高你的HTML和CSS的工作流程SublimeCodeIntel:代码提示DocBlocker:对js代码进行注释JSFormat:格式化js代码Terminal:使用vim命令2.1PackageControl安装其他插件之前,首先先安装PackageControl,具体步骤如下:使
8 个帮助你编写可维护、精简化前端代码的 CSS 策略
写基本的CSS和HTML是入门Web开发首先需要学习的事情之一。然而我遇到的很多程序显然没有真正的花时间去考虑前端开发的长期性和可维护性。我认为这主要是因为很多开发者在组织他们的CSS/HTML和JavaScript时没有深入地理解相关的策略。对于我和我们团队来说,最重要的事情写可维护的前端代码。虽然我们有好几个客户一直合作多年,但一定要记住,你永远不会是在某个应用程序的唯一开发者。你的一次性代码和配置仅仅对你有意义,这并不意味着它们对开发这个应用的下一任开发者有意义。为了不让本文太长,我今天会主要讲述与组织CSS相关的内容。组织JavaScript有完全不同的做法。本文的目标是至少成为一个规则,最好能成为你编写CSS的指南。我会鼓励你找到自己的处理方式,但这里的目标是使CSS一致、简单、易于使用。这里有8个技巧用来组织CSS,使之便于长期维护。1.不要写不需要的样式例如:在任何地方写display:block时都需要注意。因为许多元素默认都有这种样式。