简要:Objective-C的HTML过滤框架。基于Edward Z. Yang的PHP HTMLPurifier,基本上是直接移植的。
Objective-C的HTMLPurifier是一个符合标准的HTML过滤框架。其主要目的是对不受信任的HTML(如收到的电子邮件或用户提供的标记)进行消毒。
一些内置功能包括
未来功能
很简单。
NSString *purifiedHTML = [HTMLPurifier cleanHTML:dirtyHTML];
或者异步地对HTML进行消毒
[HTMLPurifier cleanHTML:dirtyHTML withCallBack:^(NSString* cleanedHTML, NSError* error){
NSLog(@"Purified HTML: %@", cleanedHTML);
}];
在Mac OS 10.6+及iOS上运行
将你的项目与编译好的HTMLPurifier框架或静态库链接。你可能还需要将config.plist文件包含在你的应用包中。
或者,你可以将HTMLPurifier作为一个子项目添加
HTMLPurifier.xcodeproj
文件,并将其拖入你的Xcode项目中。libc++
。HTMLPurifier
的目标依赖(它是带有小工具图标的一个)。+
图标并选择HTMLPurifier.framework
。罗马·普莱贝(《[email protected]》)和卢卡斯·诺伊曼(《[email protected]》)
HTMLPurifier可以在Mac OS上作为框架使用,采用LGPL许可证;为了iOS App Store的兼容性,可以在GPL许可证下使用libgit2风格的例外。更多详细信息请参阅LICENSE文件。
原始项目,Edward Z. Yang的PHP版本HTMLPurifier,包括许多可能的配置设置。并非所有选项都适用于这个版本,但默认设置应该对于大多数用途足够好。如果你的要求不同,你可以随时添加必要的配置选项支持,并提交一个拉动请求。
本项目直接从PHP版本的HTMLPurifier(4.6)移植而来。进行了某些简化的操作,所以请用常识使用。
由于我们使用libxml2进行标记化处理,输出将略与PHP版本有所不同。
实现
更新和优化现有代码
如果你引入新的内容,请提供可行的单元测试。这里有很好的指南:[编码标准](http://htmlpurifier.org/contribute#toclink1)。
我们的主要项目是Mynigma,这是一个用户友好、安全的电子邮件客户端。我们需要一个良好的解决方案来过滤不受信任的HTML,而在PHP中唯一存在的是最好的一个。所以我们将该项目移植到了Objective-C,这对于我们来说是一个艰巨的任务。你也能从我们的工作中受益,该项目受到LGPL许可证和libgit2风格的GPL许可证的双重许可。这意味着你可以在任何类型的项目中使用该框架,在iOS上使用静态库。然而,如果你修改了HTMLPurifier的源代码,你的修改必须公开发布,以便其他人也能从中受益。