2014年9月1日星期一

网络常见劫持杂谈

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
网络常见劫持杂谈  阅读原文»

  • 本周内更新
网络常见劫持杂谈

我相信劫持这种问题做运维的朋友都会或多或少的遇到过。因为360拥有的用户数量比较多,所以我遇到这种情况比较多。在这里拿出来跟大家分享一下,这样当大家遇到这些情况时好知道原因,以及如何去解决。近期我也会录视频跟大家一起分享,里面有我实际碰见的劫持实例。

常见的劫持一般有三种:dns劫持,路由劫持,url劫持也就是大家经常说得七层劫持。

第一种dns劫持。比如软件管家域名soft.360.cn,我们会针对电信和联通分别做解析。但在移动没有资源,所以默认情况下移动用户会解析到我们的默认线路电信上面。比如这时候某省移动运营商发现这个域名流量特别大,这时候他就会更改自己的dns服务器,在自己的dns服务器上解析我们的域名。这样当用户用他们的dns解析我们域名的时候解析出来的ip就是移动自己的ip。这样就不用出移动大网以达到省钱的目的。解决的方法:第一,hosts绑定,这个大家应该都知道;第二,换域名,或者多个域名来分担,让运营商也不知道你是哪个域名在服务;第三,在移动搭代理服务器源站用电信或者联通的服务器;第四,向运营商投诉,一旦投诉的人多了,他们也会想办法去解决问题。

第二种路由劫持。如下图,运营商那里有两个出口,第一个出口是他们的内网,第二个是要出内网。他们前端一般是一个光分设备,它可以模拟服务器应答。也就是网上常常说的抢先应答。一般情况下他也不会完全劫持,它是有一定几率去劫持你。比如你家是拉的小运营商的网就可能出现这种情况,大家可以有意识去注意一下。

wKiom1QDaj_RITC-AADkj59ZXZQ429.jpg

第三种是url劫持。这是七层劫持。如果你得某一个url流量特别大,某些小运营商就会劫持你。当然他们经常会劫持到他们的一些代理服务器,他们的这些代理服务器一般情况下也能提供服务,但某些小运营商劫持做得并不是太好,也会造成用户访问失败的情况。有些时候你得竞争对手会跟某些运营商合作来劫持你得域名。

wKioL1QDa_bCD3y3AAgcxIwl6fU599.jpg

wget是要下载360的杀毒软件,但中间第一个302跳转到一个域名是72link.com的域名,然后有一个302,跳转到某度的域名了,最终下载下来的文件我就不说了,大家应该懂的。

对了大家觉得如果对自己还有那么一点点帮助的,希望大家多点赞,多评论,感谢!!!大家可以加入运维交流群:325525293 来一起交流。

返回顶部

架构设计分享之权限系统(看图说话)  阅读原文»

架构设计分享之权限系统(看图说话)

前面一篇文章《最近架构随想》,我提到架构设计的一些构想,其实也是对之前项目经验的一些归纳及总结。今天我们就以权限系统作为切入点,谈一谈怎么设计权限系统以及怎么做到系统具有以下特性:

  1. Organized:如果系统组织比较好,可以起到事半功倍的效果。

  2. Encapsulated:对功能,结构,数据进行有效的封装,会使系统维护变得更加容易。

  3. Reusable:对常用功能以及组件进行有效的封装,可以使系统变得结构清晰且方便维护。

  4. Extensible:在设计系统的时候,如果很好的遵守OO的设计理念(OO的五大原则SOLID),即使系统做得很大,也会像火箭一样直冲云霄!

  5. Replaceable:在很多时候我们需要考虑到系统,组件或者功能的可替换性,因为需求是会变的。

  6. Testable:做到系统的可测性,会大大帮助开发以及维护,对团队开发以及分工协作起着非常重要的作用。

  7. Loose Coupling:隔离耦合是架构设计必须要考虑的一个因素,如果系统不能做到高内聚、低耦合,那么在维护,升级,新功能开发方面就会是一场噩梦!

  8. High Performance:高性能是系统设计必须重视的要点,用户不可能忍受简单页面加载超过十秒,也不可能接受页面操作频繁卡死的情形,所以在架构设计的时候必须从数据库,逻辑,服务以及UI进行合理的规划。

  9. Scalability:如果能做到前面的几点,那么我有理由相信你的系统一定具备Scalability。

  10. Enjoy Your Life:最后一点也是最重要的一点,不要忙碌于重复的码农工作,喝杯咖啡,享受代码,早点回家,陪老婆、陪小孩,环球旅游,享受生活!

废话半天,下面就开始看图说话环节:

架构设计图:

image

部署及组件图:

28-7-2014 12-27-11 AM

详细解决方案:

image

01_Client:存放UI相关的项目,比如Winform, WPF,ASP.NET, Silverlight,ASP.NET MVC或者相关的Web Model及View Model项目。

02_Hosting:存放与Service相关的项目,可以是Direct Service,Remoting Service,Web Service,WCF Service或者Web API Service 。

03_Domain:业务逻辑相关的所有实体以及操作(根据OO的思想设计类以及类之间的关系)。

04_Infrastructure:非业务方面的功能框架 (Data,Common,DataContract,AOP, IOC,Logging,Encryption,Email)。

05_Database:数据库项目(包含所有数据库脚本,方便开发,部署以及维护)。

06_Tests:所有测试项目(数据访问测试,框架测试,业务逻辑测试,服务测试以及View Model测试)。

07_ReferenceLibs:项目相关的外部引用。

08_Tools:一些简单的工具,方便开发,测试以及部署。

各层执行序列 (调用Service之前需要调用Service Adapter,然后根据项目配置来决定调用WCF Service,Web API Service 还是直接DLL引用):

28-7-2014 12-34-29 AM

权限系统设计 (支持多系统,Module多层级,Group多层级,多用户来源,功能权限,数据权限等):

security

权限系统数据库关系图(三个中心点:Users, Roles, Paths):

image

权限系统所有表(包括主要表以及备份表,主要是针对中小型项目,如果大型项目则要采用分库,分表以及分区的策略):

image

数据库项目――脚本注意事项以及如何一键执行所有数据库脚本(方便管理数据库脚本并且对团队开发以及分工协作帮助很大):

image

代码生成器――T4完全生成数据库,业务实体,业务层,服务层以及UI代码 (之前也用Winform和WPF写过代码生成器,这是第一次使用T4生成整个项目,感觉非常好用,并且随时修改随时使用,而且还可以根据项目进行定制化)。

image

这篇文章主要是看图说话,所以如果你有什么反馈,心得或者建议,不妨留言,我会尽力在今天进行回复。

如果您认为这篇文章还不错或者有所收获,不妨点击一下右下角的(赞)按钮,因为你的支持是我写作,继续分享的最大的动力!

本文出自 "圣殿骑士" 博客,请务必保留此出处http://knightswarrior.blog.51cto.com/1792698/1547232

返回顶部

阅读更多内容

没有评论:

发表评论