無標題文檔

正确上传文件

网站有很多地方需要交互,比方说有时候就需要用户上传文件。大部分的时候我都没有在乎这一点,我个人一向认为正确上传文件是常识。但当我整理某台服务器的时候,我发现有很多不合理的地方,于是写下来说说我的看法。这篇文件仅适合独立开 Blog,和打算珍惜服务器的每 1KB 资源的人阅读。

用户的角度上说,上传正确的文件应是自律为主。上传文件应该遵守两个原则,首先就是确定这个文件一定会使用到才会上传,其次就是是尽量的小。下面,我举例说明一下。

比如用户上传图片,jpg、gif 和 png 图片格式所能展现的效果和内容是不同的,但不建议采用上述格式以外的其他图片格式作为上传文件。 这里,有一个连接详细解释这些内容

个人 Blog 的照片如果需要插图,可以考虑使用 如 Yupoo 等图片共享网站 ,当然前提是内容符合他们的要求。这样你本身就可以每个月就可以减轻一些存储空间,并且更有利于管理。文章插图容量应该控制在 500KB 以内,大小应该控制在 800px 一下(以最宽一边计算)。根据本人的经验,这样最适合阅读。

相同的道理,如果是自己的服务器,如果没有必要,尽量不要上传视频等文件,因为这些文件将会迅速耗费你的空间。你可以将一些公共的视频放到 Youtube 等网站,这样也可以起到分流的作用。

永远不要怀疑蜘蛛的力量,文件一旦上传到服务器上,即便是没有做任何的连接,都有可能被访问到(愚蠢的服务器)。所以千万不要将你的个人资料等上传到服务器上。否则,除了会浪费服务器空间以外,还会引起不必要的麻烦。

上传的文件应该尽量避免空格、中文、全角标点符号等字符,因为服务器不一定能正确处理这些文件(虽然有点小题大作)。最好的做法是建议采用英文、数字和下划线组合而成的便于理解的文件名。

随后,下面是作为一名开发者的一些开发经验。

永远不要怀疑脚本的破坏能力, 小小的脚本可能就会毁了整台服务器 。所以避免 PHP、ASP、JSP 等这些服务器脚本上传,Windows 主机特别要注意避免用户上传可执行文件。*ix 服务器应上传操作以后立即将权限标记为 644 (目录权限为 755)。这个是第一条,而且是最总要的一条。

如果用户不是非常的在意,我们应该帮助他们重新生成上传文件的文件名。文件名应该包含文件上传日期等有规律的名称,这样在便于区分的同时也便于按照特征备份。重命名的文件明建议采用小写(这个是我的个人习惯)。

最后,建议应该适当的放松上传验证的机制。请不要误解我上句话的意思。比如上面我所说的上传的图片格式,在「逃避」了客户端的校验以后,发现用户还是上传了张 BMP 的图片,这个时候应该在适当允许的范围内,可以考虑将其转换成指定的适当格式存储,而不是「迂腐」地报错。

就是这些了,应该还有其他的一些更有用的经验,为了避免以偏概全,欢迎大家一起探讨。

改变你的 User-Agent

很多的时候我们会非常的惊奇为什么网站会知道我们用什么浏览器,什么操作系统。比如 Kaku 的 Blog 上就有一个 插件 就是显示用户区域,浏览器和系统的。

其实你大部分的时候并不用担心这件事情,因为这些信息是浏览器「主动」告诉服务器的。这样是为了让服务器知道,「我在使用某个平台下的某个浏览器,请送给我知道的数据」。而 Agent 的特性不仅仅是浏览器方面有,很多的网络程序都会发送相似的「标识符」,标识自己的身份。有关 User-Agent 更详细的介绍你可以参考 这个连接

但是这种技术有时候会是双刃剑。如果你并不想被别人知道你在使用什么系统、什么浏览器,通常情况下这个时候,就往往显得非常的无能为力(大部分浏览器默认都没有这个选项)。如果你现在正在使用 Firefox,那么恭喜你实现了第一个家庭梦想 -- 你可以通过插件指定你自己喜欢的 User-Agent。

这个帮助我们的 Firefox 插件就是 User Agent Switcher ,你可以从 官方下载 。安装和设置非常的简单,比如我的 Firefox 设置好了以后就是这个样子:

https://friable.rocks/_/2007_12_23/1151185277.jpg

(再推荐一个网站,你可以访问 这个连接 得知你目前的 User-Agent。)

虽然「人肉」根据字符串分析用户的浏览器和系统非常的直观。但由于 User-Agent 没有一个统一的标准(虽然 Mozilla 已经在做 这件事情 ),所以用程序分析该字符串的所使用的系统和浏览器版本还是一件比较复杂的事情。

Javascript 方面可以参考 这个链接 (希望不要被其「冗余」的代码吓到)。相对的,PHP 可以使用

<?php
echo $_SERVER['HTTP_USER_AGENT'];
?>

获得当前客户端的 User-Agent 字符串。

最后请注意,更改 User-agent 会引起服务器对你的浏览器误判,可能会造成不必要的麻烦。PS: 但愿 Kaku 看见我这篇文章不要踹我。

定制 404 页面的一些心得

很多兄弟和我一样,有时候会在 404 页面上面花些功夫。好的 404 页面不仅仅可以装饰站点,而且还可以对搜索引擎优化(SEO)有帮助。

看到 一篇文章 ,它列出了很多对于定制 404 页面非常好的建议,下面我将其列出来:

  1. Use appealing visual elements.
  2. Provide alternatives for navigation.
  3. Offer an overview of possibly related posts.
  4. Communicate with your visitors.
  5. Be sincere and cool.
  6. Be user-friendly.
  7. (Don't) provide too many options.
  8. (Don't) provide too little options.
  9. DWYWTD (Do Whatever You Want To Do)

简要的翻译如下:

  1. 利用有吸引力的视觉元素
  2. 使用导航作为替代
  3. 提供可能相关的链接
  4. 与你的访客沟通
  5. 真诚和冷静(应该指风格)
  6. 友好的用户界面
  7. 提供太多的选择
  8. 提供过少的选择
  9. DWYWTD (发挥想象)

很可能这些经验和总结还不够的完整,不过已经很受用了。下面是 Party 时间,请同学们观看 我的 404 页面 并呕吐三分钟:

https://friable.rocks/_/2007_12_04/1888889968.jpg

我的照片

嗨!我叫「明城」,八零后、码农、宁波佬,现居杭州。除了这里,同时也欢迎您关注我的 GitHubTwitterInstagram 等。

这个 Blog 原先的名字叫 Gracecode.com 、现在叫 「無標題文檔」 。 要知道作为码农取名是件很难的事情,所以不想在取名这事情上太费心思。

作为八零后,自认为还仅存点点可能不怎么被理解的幽默感,以及对平淡生活的追求和向往。 为了避免不必要的麻烦,声明本站所输出的内容以及观点仅代表个人,不代表自己所服务公司或组织的任何立场。

如果您想联系我,可以发我邮件 `echo bWluZ2NoZW5nQG91dGxvb2suY29tCg== | base64 -d`

分类

搜索

文章