Campaign安全最佳实践 ac-security
在Adobe,我们非常重视您的数字体验的安全性。 安全实践深深地植入到我们的内部软件开发与运行流程和工具中,我们的跨职能团队严格遵循这些惯例,以预防、检测事件并快速做出响应。
此外,我们与合作伙伴、领先的研究人员、安全研究机构和其他行业组织开展的协作也有助于我们及时了解最新的威胁和漏洞,并且我们经常将先进的安全技术融入我们提供的产品和服务中。
隐私
隐私配置和强化是安全优化的关键元素。 以下是有关隐私的一些可遵循的最佳实践:
- 使用HTTPS而不是HTTPProtect您的客户个人信息(PI)
- 使用PI视图限制保护隐私并防止数据被滥用
- 确保加密密码受到限制
- Protect可能包含个人信息的页面,如镜像页面、Web应用程序等。
访问管理
访问管理是安全加固的重要组成部分。 以下是一些主要的最佳实践:
- 创建足够的安全组
- 检查每个操作员是否具有适当的访问权限
在本节中了解有关权限的详细信息
编码准则
在Adobe Campaign(工作流、Javascript、JSSP等)中进行开发时,请始终遵循以下准则:
-
脚本编写:尝试避免SQL语句,使用参数化函数而不是字符串连接,通过添加要用于允许列表的SQL函数来避免SQL注入。
-
保护数据模型:使用已命名权限限制操作员操作,添加系统筛选器(sysFilter)
-
在Web应用程序中添加验证码:在您的公共登陆页面和订阅页面中添加验证码。
请参阅Adobe Campaign Classic v7文档以了解详情。
个性化
向内容添加个性化链接时,请始终避免在URL的主机名部分进行任何个性化设置,以避免潜在的安全缺口。 绝不应该在所有URL属性<a href="">
或<img src="">
中使用以下示例:
<%= url >
https://<%= url >
https://<%= domain >/path
https://<%= sub-domain >.domain.tld/path
https://sub.domain<%= main domain %>/path
数据限制
您必须确保低权限验证用户无法访问加密的密码。 要执行此操作,主要有两种方法:限制仅访问密码字段或访问整个实体。
此限制允许您删除密码字段,但允许所有用户从界面访问外部帐户。 请参阅此页面以了解详情。
-
前往 Administration > Configuration > Data schemas。
-
创建新 Extension of a schema。
-
选择 External Account (extAccount)。
-
在最后一个屏幕中,可以编辑新的srcSchema以限制对所有密码字段的访问:
您可以通过以下方式替换主元素(
<element name="extAccount" ... >
):code language-none <element name="extAccount"> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="password"/> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="clientSecret"/> <element name="s3Account"> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="awsSecret"/> </element> <element name="wapPush"> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="password"/> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="clientSecret"/> </element> <element name="mms"> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="password"/> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="clientSecret"/> </element> </element>
因此,您的扩展srcSchema可能如下所示:
code language-none <...> <element name="extAccount"> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="password"/> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="clientSecret"/> <element name="s3Account"> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="awsSecret"/> </element> <element name="wapPush"> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="password"/> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="clientSecret"/> </element> <element name="mms"> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="password"/> <attribute accessibleIf="$(loginId) = 0 or $(login) = 'admin'" name="clientSecret"/> </element> </element> <...>
note note NOTE 您可以将 $(loginId) = 0 or $(login) = 'admin'
替换为hasNamedRight('admin')
,以使所有具有管理员权限的用户都能看到这些密码。
访问管理
访问管理是安全加固的重要组成部分。 以下是一些主要的最佳实践:
- 创建足够的安全组
- 检查每个操作员是否具有适当的访问权限
在本节🔗中了解有关中权限的更多信息。
编码准则
在Adobe Campaign(工作流、Javascript、JSSP等)中进行开发时,请始终遵循以下准则:
-
脚本编写:尝试避免SQL语句,使用参数化函数而不是字符串连接,通过添加要用于允许列表的SQL函数来避免SQL注入。
-
保护数据模型:使用已命名权限限制操作员操作,添加系统筛选器(sysFilter)
-
在Web应用程序中添加验证码:在您的公共登陆页面和订阅页面中添加验证码。
请参阅Adobe Campaign Classic v7文档以了解详情。