Z-Blog Wiki Z-Blog Wiki

Z-Blog官方文库

用户工具

站点工具


appcenter:auditstandard

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
appcenter:auditstandard [2016/09/07 19:19]
zsxsoft
appcenter:auditstandard [2020/03/13 10:21] (当前版本)
zsx
行 1: 行 1:
 <​markdown>​ <​markdown>​
  
-#​Z-Blog应用中心 ​ 应用审核规范+# Z-Blog应用中心 ​ 应用审核规范
  
-##注意+## 注意
 * 在应用中心上传应用,均需遵守此规范。规范如有改变,会通过邮件等方式通知开发者。 * 在应用中心上传应用,均需遵守此规范。规范如有改变,会通过邮件等方式通知开发者。
 * 违反以下规范,视情节轻重可能有以下处罚: * 违反以下规范,视情节轻重可能有以下处罚:
-   * 拒绝上架应用,或下架已上架应用 +   * 拒绝上架应用,或下架已上架应用 
-   * 在Z-Blog官方网站各处通报 +   * 在Z-Blog官方网站各处通报 
-   * 降低开发者权限 +   * 降低开发者权限 
-   * 关闭开发者收费应用发布权限 +   * 关闭开发者收费应用发布权限 
-   * 封禁开发者,并下架所有应用+   * 封禁开发者,并下架所有应用。 
 +* 并非完全满足以下标准即可保证上架,当遇到收到版权投诉等特殊情况时,不能保证上架。
  
- +## 制定标准
-##​制定标准+
 * 保证应用的可用性与兼容性; * 保证应用的可用性与兼容性;
 * 大部分情况下,保证刚会使用 Z-Blog 的初级用户可方便的使用; * 大部分情况下,保证刚会使用 Z-Blog 的初级用户可方便的使用;
 * 大部分情况下,保证不会网站制作、图片制作的用户可方便的使用。 * 大部分情况下,保证不会网站制作、图片制作的用户可方便的使用。
  
-##通常认证标准 +## 应用强制认证标准 
-* Microsoft Edge(Windows 10 10586上)、Firefox 40+、Chrome 45+、Safari in OS X 10.10+浏览器下不错位,正常使所有功能; +违反以下规则之一,完全不可上架到应中心。 
-Internet Explorer 11、Firefox 30+、Chrome 31+浏览器下错位,隐藏不可正常使用的功能; + 
-使用UTF-8编码,并确保文件不带BOM头; +* 不涉及编码转换等情况必须使用UTF-8编码并确保文件不带BOM头; 
-* 没有安全漏洞(包括SQL注入、跨站脚本攻击、跨站请求伪造等) +* 没有安全漏洞(包括SQL注入、跨站脚本攻击、跨站请求伪造等) 
-不改动任何的系统文件和语言文件,不对非应用身创建文件进行任何修改+  SQL注入:Z-BlogPHP版本所有操作博客数据库SQL均需要使用系统自带的SQL查询库,不允许手写SQL; 
 +  * 跨站脚攻击:Z-BlogPHP 1.5.2起引入XssHtml,请在需要白名单输出点调用它 
 +  * 跨站请求伪造:Z-BlogPHP 1.5.2起引入CSRF防御功能,见:https://​wiki.zblogcn.com/​doku.php?​id=zblogphp:​development:​features:​1.5.2:​security
 * 不存在主观故意可能给用户造成损失的恶意代码; * 不存在主观故意可能给用户造成损失的恶意代码;
-ASP及PHP代码不得经过任何形式的对可读性造成影响的加密、混淆; +  ​即使户使盗版应用,也禁止对用户数据进行破坏
-* JavaScript在提供混淆版本的同时需在同一目录提供Source Map或未混淆版本; +
-* 原则上不得利任何方式引外站任何资源,引用需要向Z-Blog官方报备; +
-* 非应用本身功能所必须的第三方接口本身不再能使用等情况不得在任何情况下干扰用户的正常使用;+
 * 在用户未明确知悉的情况下,严禁对其它应用进行任何的干扰或修改,除非该应用自行提供了公共接口; * 在用户未明确知悉的情况下,严禁对其它应用进行任何的干扰或修改,除非该应用自行提供了公共接口;
-* 在Chrome最新Stable版本打开Developer Tool,在Console不显示任何Error; 
 * 不含有.DS_Store、thumbs.db、_notes、.idea等无用文件或文件夹,不含有隐藏文件。 * 不含有.DS_Store、thumbs.db、_notes、.idea等无用文件或文件夹,不含有隐藏文件。
 +* 非应用本身功能所必须的第三方接口本身不再能使用等情况,不得在任何情况下干扰用户的正常使用;
  
- +### 主题
-##主题认证标准 +
- +
-* 指定页面编码为UTF-8(&​lt;​meta charset&​gt;​)。+
 * 必须引用c_html_js_add.asp或php。 * 必须引用c_html_js_add.asp或php。
 * 带有Z-Blog版权标识(允许使用文本、图片、JavaScript等,但需要能让用户感知)。 * 带有Z-Blog版权标识(允许使用文本、图片、JavaScript等,但需要能让用户感知)。
 +* 指定页面编码为UTF-8(&​lt;​meta charset&​gt;​)。
 * 标题等长度过长不会导致变形。 * 标题等长度过长不会导致变形。
 * 类似网站Logo等每个站点都不同的配置项,必须提供插件以便用户进行配置,或是利用系统的侧栏进行管理。 * 类似网站Logo等每个站点都不同的配置项,必须提供插件以便用户进行配置,或是利用系统的侧栏进行管理。
-* 除非主题需要兼容低版本Internet Explorer,否则不要引用html5shim等为低版本浏览器提供支持的脚本; 
-* Z-BlogPHP 1.5以下版本,非特殊要求,勿自带jQuery(系统自带1.8.3)。 
-* 解决W3C认证时发现的以下问题: 
-   * Stray end tag(未闭合标签) 
-   * Duplicate (something)(重复的ID、属性等) 
-   * Element (someElement) is missing a required instance of child element (someElement)(缺少子元素) 
-   * No element (someElement) in scope but another end tag seen(发现多余的闭合标签) 
 * 满足对应平台的应用认证标准。 * 满足对应平台的应用认证标准。
  
-###​Z-BlogPHP 1.5以上需要遵守标准 
-* 使用zblogphp.js,弃用common.js。 
  
-###​响应式主题 +### PHP应用
-* 保证Android 4.4及以上版本默认浏览器、iOS 9.0及以上版本Safari、Windows 10 Mobile Build 10586及以上版本Microsoft Edge出现兼容性问题,可正常使用全部功能。 +
-* 保证以下设备对应的分辨率可正常浏览: +
-    *  iPad Air; +
-    *  iPad Mini; +
-    *  iPhone 5; +
-    *  Samsung Galaxy S4; +
-    *  Lumia 1520。 +
- +
- +
-## PHP应用认证标准+
 * 移除了所有的UTF-8 BOM头; * 移除了所有的UTF-8 BOM头;
 * 文件名大小写正确,无404页面; * 文件名大小写正确,无404页面;
-* 在主流的操作系统(Windows 2003 SP2 / 2008r2 / 2012、Ubuntu ​12.04 LTS / 14.04 LTS、CentOS ​5 / 6 / 7)和服务器软件(IIS 6 - 10、Apache 2、nginx 1.4 - 1.12、Kangle 3)下可正常运行。 +* 在主流的操作系统(Windows 2003 SP2 / 2008r2 / 2012 / 2016、Ubuntu ​16.04 LTS / 18.04 LTS、CentOS 6 / 7)和服务器软件(IIS 6 - 10、Apache 2、nginx 1.4 - 1.12)下可正常运行。 
-* 在PHP 5.2 - 7.1均可正常运行。+* 在应用支持的最低版本以上的PHP版本(默认为PHP 5.2均可正常运行。
  
-###命名标准 +####​权限判断 
-在include.php内require或include的任何PHP文件内,所有的全局常量、变量、函数、类,原则上全部以“应用ID\_XXX”或“XXX\_应用ID”命名; +管理页面等使用$zbp->​CheckRights而不是$zbp->​User->​Level来判断权限
-* 如需创建数据表,原则上必须以%pre%plugin_应用ID为开头命名表; +
-* 如需使用配置类原则上配置名必须以应用ID开头; +
-* 如需使用Meta存储附加数据,原则上字段名必须以应用ID开头; +
-* 如同一开发者欲在自己的应用下使用公用配置,需向Z-Blog官方报备后方可使用+
  
-###​权限判断 
-* 管理页面等使用$zbp->​CheckRights,而不是$zbp->​User->​Level来判断权限。 
  
-###​数据库+#### 数据库
 * 必须使用$zbp->​db->​xxx执行SQL语句; * 必须使用$zbp->​db->​xxx执行SQL语句;
 * 涉及到表的时候必须用$table调用; * 涉及到表的时候必须用$table调用;
行 88: 行 60:
  
  
-##ASP应用通常认证标准+ 
 +### ASP应用
 * 需要在Windows 2003 SP2及以上版本、IIS 6.0及以上版本可正常运行。 * 需要在Windows 2003 SP2及以上版本、IIS 6.0及以上版本可正常运行。
  
-###​ASP主题要求+#### ASP主题要求
 * 非特殊情况,必须使用侧栏管理标签(<#​template:​sidebarX#>​)。 * 非特殊情况,必须使用侧栏管理标签(<#​template:​sidebarX#>​)。
 * 统计必须调用AddViewCount和LoadViewCount函数。 * 统计必须调用AddViewCount和LoadViewCount函数。
 * b_article-single.html 必须包括统计代码(可隐藏)。 * b_article-single.html 必须包括统计代码(可隐藏)。
  
- +#### 命名标准
-###​命名标准+
 * 在include.asp内include的其它文件,所有的全局变量、函数、类等,全部以“插件ID\_XXX”或“XXX\_插件ID”命名; * 在include.asp内include的其它文件,所有的全局变量、函数、类等,全部以“插件ID\_XXX”或“XXX\_插件ID”命名;
 * 如需创建数据表,必须以blog\_plugin\_插件ID为开头命名表; * 如需创建数据表,必须以blog\_plugin\_插件ID为开头命名表;
行 103: 行 75:
 * 如需使用Meta存储附加数据,字段名必须以插件ID开头。 * 如需使用Meta存储附加数据,字段名必须以插件ID开头。
  
-###​数据库+####​数据库
 * 对系统数据库操作时,SQL语句必须同时支持Access(*.mdb)和SQL Server 2000。 * 对系统数据库操作时,SQL语句必须同时支持Access(*.mdb)和SQL Server 2000。
 * 允许针对SQL Server开发更多的扩展功能,但是必须做好版本判断,保证在不受支持的SQL Server版本下不使用新版本特性。 * 允许针对SQL Server开发更多的扩展功能,但是必须做好版本判断,保证在不受支持的SQL Server版本下不使用新版本特性。
    
 +
 +
 +## 非强制认证标准
 +
 +非强制代表不建议违反,并且被查出也会有拒绝上架的可能,但如有必要可解释说明及报备。
 +
 +* Firefox 70+、Chrome 60+、Safari in macOS 10.12+浏览器下不错位,可正常使用所有功能;
 +* Internet Explorer 11、Firefox 60+、Chrome 49+浏览器下不错位,隐藏不可正常使用的功能;
 +* 不改动任何的系统文件和语言文件,不对非应用本身创建的文件进行任何修改;
 +* ASP及PHP代码不得经过任何形式的对可读性造成影响的加密、混淆;
 +* JavaScript在提供混淆版本的同时需在同一目录提供Source Map或未混淆版本;
 +* 原则上不得利用任何方式引用外站任何资源,引用需要在应用中心页面写明引用了哪些资源;
 +* 在Chrome最新Stable版本打开Developer Tool,在Console不显示任何Error;
 +
 +
 +### 主题
 +
 +* 除非主题需要兼容低版本Internet Explorer,否则不要引用html5shim等为低版本浏览器提供支持的脚本;
 +* 解决W3C认证时发现的以下问题:
 +   * Stray end tag(未闭合标签)
 +   * Duplicate (something)(重复的ID、属性等)
 +   * Element (someElement) is missing a required instance of child element (someElement)(缺少子元素)
 +   * No element (someElement) in scope but another end tag seen(发现多余的闭合标签)
 +
 +#### Z-BlogPHP 1.5以下需要遵守标准
 +* 非特殊要求,勿自带jQuery(系统自带1.8.3)。
 +
 +#### Z-BlogPHP 1.5以上需要遵守标准
 +* 使用zblogphp.js,弃用common.js。
 +
 +#### 响应式主题
 +* 保证iOS 11.0及以上版本Safari、Android当前版本的QQ浏览器、UC浏览器(不需要考虑系统自带浏览器,自从Android 5.0以后其已经可自动升级)不出现兼容性问题,可正常使用绝大部分功能。
 +* 保证以下设备对应的分辨率可正常浏览:
 +    *  iPad Air;
 +    *  iPad Mini;
 +    *  iPhone SE;
 +    *  iPhone 11;
 +    *  华为 P30。
 +
 +
 +#### 命名标准
 +* 在include.php内require或include的任何PHP文件内,所有的全局常量、变量、函数、类等,原则上全部以“应用ID\_XXX”或“XXX\_应用ID”命名;
 +* 如需创建数据表,原则上必须以%pre%plugin_应用ID为开头命名表;
 +* 如需使用配置类,原则上配置名必须以应用ID开头;
 +* 如需使用Meta存储附加数据,原则上字段名必须以应用ID开头;
 +* 如同一开发者欲在自己的应用下使用公用配置,需进行报备后方可使用。
 +
 +
 +####​数据库
 +* 必须使用$zbp->​db->​xxx执行SQL语句;
 +* 涉及到表的时候必须用$table调用;
 +* 建表必须在$datainfo和$table内注册;
 +* 不使用$zbp->​db->​sql而自行拼接SQL语句,需同时支持MySQL和SQLite数据库;
 +* 不对系统的数据表的结构作任何修改。
 +* 不得使用MySQL的ORDER BY rand()
  
 ##​收费应用要求 ##​收费应用要求
 * 开发者需在3个工作日内,对用户的询问进行处理,已向官方报备并在应用详情页面明确告知的除外。 * 开发者需在3个工作日内,对用户的询问进行处理,已向官方报备并在应用详情页面明确告知的除外。
 * 如涉及取消用户授权等直接影响正常使用的问题,直接交由Z-Blog官方,不得私自处理。 * 如涉及取消用户授权等直接影响正常使用的问题,直接交由Z-Blog官方,不得私自处理。
 +* 应用本身必须提供完备的配置项,功能不可过于简单。
  
 ## 优先审核标准 ## 优先审核标准
行 121: 行 149:
  
 ===== 应用上架自检 ===== ===== 应用上架自检 =====
-  * [[https://​github.com/​zsxsoft/​appchecker|AppChecker]]是Z-Blog应用中心上架检测工具。开发者在发布应用至Z-Blog应用中心前,应自查所开发的应用是否符合以上规范,并使用AppChecker工具自检无后再发布 +  * 应用上架后,会自动进入自动审核流程。开发者应尽力确保动审核不出现错误。[[https://​github.com/​zsxsoft/​zbp-app-validator]]是该自动审核工具的开源版本,但不提供部署说明。 
-<​note>​**AppChecker下载**:[[https://​github.com/​zsxsoft/​appchecker/​releases|{{:​wiki:​download-btn.png?​120}}]]</​note>​+
appcenter/auditstandard.1473247187.txt · 最后更改: 2016/09/07 19:19 由 zsxsoft