做 B/S 结构的程序,一直有这么一个问题。需要验证所有用户输入的数据,比如用户名阿、密码、商品的ID、评论内容。而很多时候这些验证可能需要在多个地方用到,多数情况下,我们需要赋值下验证的代码或做成统一的 LIBRARY。
我在想为什么不把这种东西做成一个通过而有趣的服务呢?我们通过配置就能完成数据的验证,比如我们通过 XML 的格式,设置数据项名称、类型、数据格式、以及提交地址等等。
于是就有了下面一堆的文字。
概述
一般我们在做表单操作时角色有2个:一个是客户端 C,一个是服务端 B ,流程是这样的:客户端 C(浏览器)提交表单 -> 服务器 B 接受并验证 -> B 判断符合条件时,进行相关操作(如存入数据库)。
而基于表单验证的服务器就是把表单提交的数据验证单独的独立出来作为一个独立的服务使用,角色有 3 个一个是客户端 C,一个是验证服务 V, 一个是服务端 B。
流程是这样的:客户端 C(浏览器)提交表单 -> V 进行验证 -> B 进行相关操作(如存入数据库)。
表单验证服务是将所有来自客户端的数据验证全部集中交给 V 进行处理。让 B 接受到的数据是完全安全并无需过滤的,B 可以直接操作的(如存入关系数据库、执行系统命令)。
C 和 V 以及 B 之间全部采用 HTTP 协议(敏感数据传输时,可全部采用 HTTPS)
[...]
转载:http://stackoverflow.com/questions/948172/password-strength-meter
没啥好解释的,一个使用积分换算的密码强度检测算法。
Password Length:
5 Points: Less than 4 characters
10 Points: 5 to 7 characters
25 Points: 8 or more
Letters:
0 Points: No letters
10 Points: Letters are all lower case
20 Points: Letters are upper case and lower case
Numbers:
0 Points: No [...]
link:http://wiki.nginx.org/NginxHttpUpstreamRequestHashModule
url hash是用于提高squid命中率的一种架构算法,一般现行的架构通常是使用dns轮询或lvs等将访问量负载均衡到数台squid,这样做可以使 squid的访问量做到了均衡,但是忽略了一个重要方面–数据量。在这种架构下,每台squid的数据量虽然是一致的,但通常都是满载,并且存在数据重复缓存的情况。如果后端服务器数据容量或者用户的访问热点数远远超过缓存机器的内存容量,甚至配置的disk cache容量,那么squid将会大量使用磁盘或者不停与后端服务器索取内容。
在新的架构下,使用nginx架载于squid之前,如果squid机器有4台,那么在这4台机器上装上nginx,nginx使用80端口,而 squid改为3128端口或其他端口。nginx的效率非常高,消耗内存也非常少,所以并不需考虑加装nginx所带来的性能损耗。然后在nginx上配置url hash,使访问量根据url均衡分布到各台squid,根据url分流之后,每一个url就会只存在于一台squid中,每台squid的数据都会完全不同。我们有4台机器,每台2G内存的话,原先极有可能因为数据大量重复,内存使用率仍然为2G,而现在我们经过数据均衡分布,8G内存可以达到充分利用。
是否会存在访问不均的情况呢?是有可能的,但是根据大数原理,访问量基本可以保持一致,只要不存在单一的特别夸张的热点。
假如squid是利用squidclient来刷新数据的话,新的架构提供了更高效的方法:在后端服务器中模拟url hash的算法来找到内容所在的squid,然后对此服务器刷新内容即可。在旧的架构中,需要遍历所有的服务器,比较低效。
nginx本身并没有提供url hash功能(暂时),需要安装第三方模块ngx_http_upstream_hash_module
在ngx_http_upstream_hash_module模块里有一个hash_again的标签,可以解决squid意外死机的问题。不过,如果使用了该标签,那么后端的计算对应服务器的方法就会出现错误。可以使用的办法为,提供一台备份的squid服务器,假如有squid死机,那么在 nginx里设置error_page 404和502到这台备份服务器,后端刷新缓存时亦要同时刷备份服务器。
<?php function long2str($v, $w){ $len = count($v); $n = ($len – 1) << 2; if ($w){ $m = $v[$len - 1]; if (($m $n))returnfalse; $n = $m; } $s = array(); for ($i = 0; $i = 2147483648)$n -= 4294967296; while ($n <= -2147483649)$n += 4294967296; return (int)$n; } function xxtea_encrypt($str, $key){ if ($str == [...]
實用技術博客,分享、討論實際工作中的一些問題和經驗
茉莉花~
有那麽一堆人,把道德和文化都丟棄了,還自稱5千年文明,可笑。
歡迎一起討論 OSX 下的程序開發、軟件應用等;WINDOWS 下的競技遊戲近期评论
- nroe 发表在《It’s Brain 后台管理UI》
- 桉叶 发表在《It’s Brain 后台管理UI》
- Paul 发表在《留言板》
- nroe 发表在《ZendStudio OSX 下啟用 JAVAHL》
- nroe 发表在《MAC 下使用 MACPORT 安裝 PHP-FPM》
标签
.SVN 80后 AJAX Android APACHE array aspersa AWE41AP BSD BUFFLAO character CHROME dns freebsd GOOGLE Javascript MAC MACPORT MAIL MMSEG4N MongoDB MySQL NAS NGINX NODEJS OSX OSX Password-Strength phing PHP Replica-SET REWRITE SESSION SHEEL SHELL TIMEMACHINE UPLOAD XDEBUG ZendFramework 中国特色 域名 存储过程 安全 搞笑 漫画日和链接表
- 01. Eric's linux and nginx 杨振亮一直从事linux 负载均衡,存储等工作
- 01. 叶茂盛 YeMaosheng’s Blog(软件开发、系统管理)
- 01. 威同学的博客 疯狂痴呆傻,美甘苦涩禅
- 01. 翡翠’s 板报 纪录自己的生活、工作和学习
- 01. 阿冬的 I-T 厨房的博客
- 01. 风雪之隅 PHP 的文章比较多,偶然看看[推荐下]
- 02. 新普IT教育(培训)
- 02. 若寒小记
- 10. Ayou 服务器系统架构分析日志 网易 Ayou,博客很简洁,内容精彩
- 10. Cats Who Code a website dedicated to those who create and maintain websites
- 10. David Walsh Blog MooTools Dev, JavaScript FanBoy, CSS Experimenter, and TPS Reporter
- 10. Web App Security
- 10. 大罗-PHP/Python博客
- 99. CodeColorer wordpress 代码加亮插件
- 99. stackoverflow.com 专业技术问答网站
文章归档
- 2012 年五月 (1)
- 2012 年三月 (1)
- 2012 年二月 (17)
- 2012 年一月 (6)
- 2011 年十二月 (9)
- 2011 年十一月 (7)
- 2011 年九月 (4)
- 2011 年八月 (11)
- 2011 年七月 (27)
- 2011 年六月 (20)
- 2011 年五月 (9)
- 2011 年四月 (10)
- 2011 年三月 (3)
- 2011 年二月 (3)
- 2011 年一月 (22)
- 2010 年十二月 (18)
- 2010 年十一月 (2)
- 2010 年十月 (6)
- 2010 年九月 (18)
- 2010 年八月 (6)
- 2010 年七月 (3)
- 2010 年六月 (2)
- 2010 年四月 (1)
- 2010 年三月 (7)
- 2010 年二月 (11)
- 2010 年一月 (8)
- 2009 年十二月 (4)
- 2009 年十一月 (4)
- 2009 年十月 (4)
- 2009 年八月 (5)
- 2009 年七月 (21)
