标签: 安全

不良言论屏蔽方案探讨——自说自话方案

引言 你是否曾遇到过这样糟糕的体验: 你在一个网页表单中,用心填写好所有项目后,点提交按钮时被告知“您提交的内容中有敏感信息,请检查!”,而你急得抓破头皮也找不到所谓的“敏感信息”在哪,几经修改也还是一样,致使根本无法提交内容; 更糟糕的网站甚至提交后转到其他页面才告知你有“敏感信息”,而此时你想重试的话只能重新填写整个表单! 显然,这些网站有些过敏了,但或许有网站主确实就是抱着“宁可错杀一千,绝不姑息一个”的想法来做的,这点在我国可以理解;不过就用户体验方面来说,我觉得用脏话回敬他们一点都不过分,因为他们完全不尊重用户体验,浪费用户的时间,给用户带来恼怒和困扰。 这里我提供一种简单易行的方案,可以兼顾网站安全和用户体验,我称之为“自说自话方案”。   简述 简而言之,这种方案就是让用户自言自语。 在用户提交内容时,如果我们认为内容包含不良信息,就将其设为“仅发布者可见”,这样发布者完全不知道自己的信息被屏蔽,就不会产生上述困扰,而网...

更多

[分享]用于Asp.Net的敏感内容评审控件

引言 之前在这篇文章中分享了敏感内容评审类及其辅助工具:http://www.cnblogs.com/SkyD/archive/2009/08/21/1551112.html 此次分享的工具是在Asp.Net中使用的,其功能就是在网站后台中可视化地显示评审内容明细,以供评审人员参考。 评审人员可通过此控件一目了然地了解由机器分析得出的评审结果,继而更好地进行二次评审。   使用方法 接下来演示基本的使用方法。 在VisualStudio中新建一个Web项目,引用此控件的dll: 在App_Data目录上执行“添加现有项”命令,将上一篇文章中分享的示例配置规则添加进去: 新建Global.asax,在其代码中写入以下代码,以进行初始化: 在页面顶部加入声明: <%@ Register assembly=“AuditingReader” namespace=“AuditingReader” tagprefix=“cc1” %> 在页面中加入以下代码: <cc1:Aud...

更多

[分享]敏感内容自动评审类库及辅助工具

通过本类库,可以实现对输入内容的自动分析,并会给出评分,程序可以根据此评分判断内容是否达到某一敏感度级别,从而进行相应的自动化处理。 如果将此类库与人工评审相结合,效果将会非常好:机审认为有敏感嫌疑的内容自动提交到人工评审等待列表,由人工进行二次审核,这样在保证效率的同时又兼顾了准确性,是比较理想的人机协作方式。 此类库的运作原理请参考《改进的脏话审查方案》一文:http://www.cnblogs.com/SkyD/archive/2009/03/16/updateTextVali.html   编写审查规则 光有此类库并不能评审任何内容,你需要为其提供审查规则,它才能够工作,为此我将提供一个生成器,用以生成规则配置文件: 关于规则的应用原理,也请参看《改进的脏话审查方案》一文。 这里说明一下评分的计算方式: 规则的分值属性代表这个规则的满分值,也就是说当文中的词语与此规则完全匹配时的得分,如果可以匹配但不精确则依据精确程度得到相应比例的部分分值。 而匹配精确程度的计算方式,就是通过其精确长度属性与其实际匹配内容的长度间的比例计算的。比如“白[sS]{0,3}?...

更多

通过HttpModule实现IP地址屏蔽功能

此前本想在网上找找实现Asp.Net的IP地址屏蔽功能的文章来参考,但是一搜索“IP 屏蔽 asp.net”,出现的全都是: 这些都是对我此前写的《细说Asp.net的IP地址屏蔽功能设计》一文的无情转载,不仅不保留出处、作者,而且连标题都没一个与我原文相同的~~ 这篇文章写的是程序设计部分,并没有编程实现屏蔽功能,搜索引擎上翻了几页也没找到个正经写这方面的文章,无奈只好自己来研究实现,并写下此文的续篇了,倒是没什么难度。   本文将介绍通过实现IHttpModule接口,进行判断和屏蔽IP地址的方法。 (HttoModule的基础知识可以参阅这里:http://www.tracefact.net/Asp-Net/Introduction-to-Http-Module.aspx) 阅读前请先参阅《细说Asp.net的IP地址屏蔽功能设计》一文,本文将使用这篇文章中提出的思路,并将使用文中创建的数据库、实体类。   首先,新建一个类,名为IPFilter,继承自IHttpModule接口:   实现IHttpModule接口,并为co...

更多

改进的脏话审查方案

导言 我经常光顾cnbeta,那里的评论很精辟,有时我也会忍不住评上两句,但近来突然发现发布评论都必须经过审核才会显示了,这让我感到非常扫兴。由此我又想起了此前我曾讨论过的“非法内容核查方法”,我想这种人机结合的审核方式应该会比较适合现在的cnbeta吧。 而现在我已经对此方案有了更深、更好的思路了,想在此分享出来,和大家探讨一下,我将在此逐步解析整个审查的流程: 准备工作 要审查脏话,首先需要创建对应的审查规则,每条规则需要提供以下基本信息: 1.         表达式:用于审查内容是否匹配的正则表达式。使用正则的原因在于其灵活性,常规的纯文本检索虽然快,但遇到干扰符等情况时束手无策,而正则就可以轻松解决,例如表达式“[煞傻妈狗屎贱骚瘙搔臊][sS]{0,4}?[逼笔比BB鼻X]”可以匹配多种组合的脏话,并可兼容至多4个干扰字符。 2.         首字符列表:用于遍历文章...

更多

细说Asp.net的IP地址屏蔽功能设计

出于安全考虑,几乎每个动态网站都具备IP地址屏蔽功能,而网上流传的很多关于该功能的教程大都采用字符串保存和验证IP地址,我认为这是不太科学的,我试图找到最佳的设计方案。 “IP地址的长度为32位,分为4段,每段8位,用十进制数字表示,每段数字范围为0~255,段与段之间用句点隔开。”   由此我们了解到,IP地址实际上是一个32位正整数,在C#中可以使用uint类型来表示,但SQLServer数据库里好像没有对应的类型;转而使用数据库支持的int类型的话,则会出现溢出的情况;因此我们做出妥协:使用long(bigint)类型。   TIP: int取值范围:-2,147,483,648 到 2,147,483,647 uint取值范围:0 到 4,294,967,295 long取值范围:-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807   那么如何将IP地址转为整数呢?我们看到IPAddress类中有一个“[否决的]”实例属性Address,这个属...

更多

对《网站非法内容监听系统的构想》的回复——我谈非法内容核查方法

刚才看了谢慧琦(是个MM??)的《网站非法内容监听系统的构想》一文,觉得其中所述的想法与我之前的设想非常相像,所以我忍不住也想说几句了,嘿嘿: 我原先的设想就是在用户提交时,对提交内容进行危险程度核查,也是予以评分。 无危险的内容直接发布; 有一定危险的内容也会发布,但在发布的同时会在后台提请管理员进行人工审查; 高危险度的内容延迟发布并通知管理员。 对于关键字的危险度分值我觉得可以采用1-10的数字来表述,简单明了,一般一个文章评分达到10就应当算作高危了,所以可以把一些高危词语直接设为10分。 文章评分方面不应太复杂,会影响效率,而且也很难找到太精确的算法。我觉得就是关键字出现则加入其分值,如再重复出现,则每次只增加其分值的1/10。 关键字检索方面也不需要太复杂的语言分析技术, 正则表达式就足以胜任,看我这个示例: 表达式中的“6”就是模糊值,表示脏字之间可能插入6个以内的干扰符号,这个可以由程序员通过配置参数控制,整个表达式可以由程序来根据关键字自动生成。 其效果应该是不错的,除非用通假字、错别字、同音字、火星文来写,或者竖版写、逆向写~~,当然逆向写还...

更多