HTMLPurifier 1.1.6

HTMLPurifier 1.1.6

测试已测试
语言语言 Objective-CObjective C
许可证 自定义
发布最后发布2016年11月

Mynigma Info维护。



  • 来自
  • Edward Z. Yang,Roman Priebe和Lukas Neumann

简要:Objective-C的HTML过滤框架。基于Edward Z. Yang的PHP HTMLPurifier,基本上是直接移植的。

描述

Objective-C的HTMLPurifier是一个符合标准的HTML过滤框架。其主要目的是对不受信任的HTML(如收到的电子邮件或用户提供的标记)进行消毒。

一些内置功能包括

  • 删除外国标签
  • 生成良好的HTML格式
  • 修复嵌套
  • XSS安全
  • 标准兼容性
  • UTF-8感知
  • 验证内联CSS
  • 表格(适用于电子邮件)
  • 单元测试

未来功能

  • 白名单
  • 标题验证 ... 以及更多

用法

很简单。

  1. 导入HTMLPurifier.h
  2. 将config.plist文件包含在你的包中
  3. 要么同步地
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作为一个子项目添加

  1. 在项目相对的目录中检出HTMLPurifier。
  2. 在主目录中,找到HTMLPurifier.xcodeproj文件,并将其拖入你的Xcode项目中。
  3. (适用于Mac):
    • 如果你是在为Mac构建,你可以将HTMLPurifier作为一个框架链接
    • 从你的构建目标中转到“构建阶段”,在“链接二进制与库”下添加
    • 确保使用LLVM C++标准库。打开构建设置,向下滚动到“C++标准库”,并选择libc++
    • 在构建阶段中,添加一个HTMLPurifier的目标依赖(它是带有小工具图标的一个)。
    • 转到《编者》>《添加构建阶段》>《复制文件》。
    • 展开刚创建的构建阶段,并将它的目标更改到“框架”。
    • 点击+图标并选择HTMLPurifier.framework
    • 你可能需要向你的构建设置中添加一个递归的标题搜索路径。
  4. (适用于iOS)
    • 敬请期待。
  5. 消毒。

作者

罗马·普莱贝(《[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版本有所不同。

待办事项

  1. 实现

    • 前和后过滤
    • 保留删除的body标签的样式
    • 动态配置
    • ...
  2. 更新和优化现有代码

    • 添加更多单元测试(由于libxml2解析器产出的输出与PHP版本不同,存在一些困难)
    • ...

如果你引入新的内容,请提供可行的单元测试。这里有很好的指南:[编码标准](http://htmlpurifier.org/contribute#toclink1)。

信息 & 许可证

我们的主要项目是Mynigma,这是一个用户友好、安全的电子邮件客户端。我们需要一个良好的解决方案来过滤不受信任的HTML,而在PHP中唯一存在的是最好的一个。所以我们将该项目移植到了Objective-C,这对于我们来说是一个艰巨的任务。你也能从我们的工作中受益,该项目受到LGPL许可证和libgit2风格的GPL许可证的双重许可。这意味着你可以在任何类型的项目中使用该框架,在iOS上使用静态库。然而,如果你修改了HTMLPurifier的源代码,你的修改必须公开发布,以便其他人也能从中受益。