web开发者在发布你的作品前需要考虑的技术细节

这篇文章个人觉得很受用,故仔细翻译了一下,有些地方可能翻译的不好,请见谅! 翻译后发现貌似已经有人翻译过,但是翻译的水平就有点。。。。。那篇文章中不仅忽略了知识点,并且出现了明显的语义和语法错误,有一定的误导作用,所以请务必重新阅读老高的翻译。文章中容易出错的地方老高已经注释(在文章中以【】标出)。 如需转载,请注明出处! web开发者在发布你的作品前需要考虑的技术细节 What technical details should a programmer of a web application consider before making the site public! 原文地址: 来自stackexchange.com quora的回答 界面和用户体验 要意识到浏览器的实现标准不一,请确保你的网站在主流浏览器中的正常展现。至少要针对一个最新的Gecko引擎(火狐)的浏览器、一个基于Webkit引擎(Safari或者其他移动端)的浏览器、Chrome、你想要支持的IE浏览器(可以借助IE应用程序兼容性VPC镜像)和Opera浏览器。同时需要考虑到在不同的操作系统下浏览器是如何渲染你的网站。 需要考虑来自其他浏览器的用户如何使用你的网站:智能手机、屏幕朗读器和搜索引擎,举个例子。–一些易用性信息:网页易读性倡议(WAI)和网站508规范(Section508),移动站开发:移动互联网开发者论坛(MobiForge)。 构架:如果在不影响用户的情况下部署升级。有一个或者多个用来更改架构、代码或者内容更新的可用测试或运行环境,确保他们部署的可控性,以防止造成破坏。有一个自动化部署方案,用来提交更改到生产环境。最优的解决方案是结合使用一个版本控制系统(CVS, Subversion等【译者注:为啥没GIT】)或一个自动构造机制(Ant,NAnt等)。 不要直接给用户展现不友好的错误信息。 不要用纯文本的形式呈现用户的Email,否则他们会被垃圾邮件骚扰。 给用户生成的链接加上rel="nofollow"属性,以避免SEO作弊。 为你的站点建立合理的限制机制,这一条同时属于安全细则。 理解什么是渐进增强(progressive enhancement)【译者注:与之相对的是优雅降级(graceful degradation)】。 如果一个请求提交成功,请重定向至其他地方,防止用户的重复提交。 不要忘了考虑无障碍阅读,这对网站的优化来讲是一个好主意,而且有些情况下他是法律强制必须有的。 无障碍网页应用(WAI-ARIA)和Web内容无障碍指南2(WCAG 2)在这方面可以帮到你! 不要让用户思考该如何操作 安全 OWASP开发入门可能会让你花一些时间掌握,但是他涵盖了网站开发安全的方方面面。 了解注入,尤其是SQL注入,并知道如何防御注入。 永远不要相信用户的输入,还有请求中的所有信息(包括cookie和隐藏域)。 给你的密码加点盐后在使用哈希,并针对不同行使用不同的盐以防止彩虹攻击。使用慢速【短?】散列算法,如bcrypt(经过时间考验)或者scrypt(更强、比较新)(1, 2) ,针对如何保存密码请参考(如何保存你的密码)。美国国家标准与技术研究院表示支持使用PBKDF2 算法来加密,联邦信息处理标准在dotnet开发中也支持PBKDF2(更多信息)。避免直接使用MD5和SHA族算法来保存密码。 不要尝试使用自创的自以为NB的认证系统。因为你很容易在细节和无法测试的地方犯错误,也许被黑了以后你才会后知后觉。 了解信用卡的处理规则。(详见这个问题) 为登陆页面和任何需要输入敏感信息的页面使用SSL/HTTPS(如信用卡信息)。 避免跨站脚本攻击(XSS)。 避免跨站请求伪造(CSRF)。 避免点击劫持。 使你的系统更新到最新的补丁。 确保你的数据库连接信息是安全的。 时刻注意最新的攻击技术和影响你的平台的漏洞。 阅读谷歌浏览器安全手册。 阅读网络产品黑客手册。 考虑权限最小化原则。试着让你的应用服务器以非ROOT权限运行(以tomcat为例)。 性能 必要时使用缓存,理解并使用HTTP缓存技术和HTML5的Manifest技术。 图片优化 - 不要使用一个20KB大小的的图片最为重复背景。 学习如何使用gzip压缩内容。 合并/链接多个样式表或多个脚本文件以减少浏览器的请求数,并且使用gzip压缩文件中重复的内容。 看一看雅虎高性能站点,有很多不错的点子,包括提高前端性能和他们的YSlow工具(需求使用Firefox、Safira、Chrome、或Opera浏览器)。同时,Google page speed(使用浏览器插件)也是一个不错的性能调校工具,他同时也会优化你的图片。 针对小并且相关的图片使用CSS image sprite技术。 访问量大的站点需要考虑将不用内容分至不同的域名下。 静态内容(如图片、css、js脚本还有不需要cookie的普通内容)应该被分配到一个不使用cookie的域名下,因为一个域名下的所有cookie和子域下的cookie将会被包含在所有对应的域名下。一个好的主意是使用CND加速,但是考虑到CND可能会挂,到时候本地的拷贝也会提供服务。 最小化一个浏览器需要渲染一个页面所需要的请求数。 利用工具Google Closure Compiler最小化你的js文件,还有其他的最小化工具。 确保有一个favicon....

August 17, 2014 · 1 min · Me

搜索引擎优化入门

本文适合新手老手,有不对的地方欢迎指正! 如果有什么问题或者建议,请务必留言, :-) 老高很高兴与大家交流! 同时欢迎关注我的微博 写在前面:搜索引擎是个很神奇的东西,脾气捉摸不定,动不动就学个新算法让你不得安居乐业。许多新手都会觉得想让搜索引擎收录真难啊! 那么对于刚刚建成的新站和收录有问题的旧站,如何才能让搜索引擎顺利的收录你的网站呢? 花点时间看完本文,我相信你对SEO的理解一定会更加透彻。 预先约定几个说法(不分大小写) wordpress ->wp Search Engine Optimization->SEO Uniform Resource Locator ->URL 下面老高就针对wordpress的SEO优化讲讲具体的步骤: 浅谈URL的优化 说到SEO,最先想到的应该是URL了,什么!你不知道URL是啥? 8-O 简单地说,URL就是 统一资源定位符(Uniform Resource Locator,缩写为URL)是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。https://blog.phpgao.com/ 就是一个URL,访客和搜索引擎就是靠他找到你的资源。URL的优化其实很简单,做到以下几点就OK! 伪静态 美化你的URL显示格式,即做好伪静态,打个例子,本文的URL默认为www.phpgao.com/?p=***|的形式,\*|为文章的数字ID,但是实际上他显示为www.phpgao.com/seo.html,如果这两个URL都指向同一篇文章,哪一个更能勾起你的欲望呢?同样的,搜索引擎也会试着理解你的URL ,然后抓取你的内容,分以适当的权重 -–|- 那么如何设置成这样的形式呢?首先需要了解伪静态、404错误、linux、win主机等概念,后面章节有讲。 网站地图 URL格式确定以后下面就要把你的URL告诉搜索引擎了,所以你需要一个**网站地图**,他可以告诉搜索引擎网站是什么结构,哪些页面比较重要,哪些可以忽略,有利于搜索引擎抓取。 robots.txt robots的作用是控制爬虫的抓取范围,举个比方,你可以禁止爬虫收录你的wp-admin文件夹下所有文件,这样可以保证安全性。你需要明确的是,爬虫来到你的网站,就像吃货进了一个自助餐馆一样,只要能吃的他都不放过,如果你放任不管,那么可能他会把你和你太太盘子里的饭菜都会吃掉。所以你必须告诉他:“爬虫兄啊,你不能吃这个,这个是桌子!”。简单的介绍一下用法: 请将robots.txt放到网站的根目录下,你可以参考一下www.taobao.com/robots.txt(百度中枪) 编码无所谓,一般不会出现中文 第一行写User-agent: * 意思只针对所有搜索引擎的爬虫 紧接着Disallow: /wp-* 意思是不允许看wp-开头的所有文件 你可以写很多个Disallow规则,记得首字母要大写 你还可以在文件中指明sitemap路径 Sitemap: https://blog.phpgao.com/sitemap robots.txt不要过于复杂 robots文件真的很重要,老高之前写过一个爬网页的程序放到了某个二级目录下,并在首页加了链接,但是忘记了屏蔽搜索引擎,导致谷歌收录了本站的9000多个垃圾内容页 :-( ,悲剧啊!话说百度还是很谨慎的,就是不收录! 提交入口–来我家玩吧! 提供几个提交网站的入口,此步是通知搜索引擎来收录你的网站 百度网站登录入口 Google网站登录入口 360网站登录入口 Bing网站登录入口 搜狗网站收录提交入口这步最简单了!不要偷懒哦! 8-) 站长工具–查询收录的利器 站长工具就站长管理网站收录,转化率等信息的瑞士军刀...

May 11, 2014 · 1 min · Me