按返回,确保列表视图滚动到与细节链接/按钮被点击之前相同的位置。 改善方法:当用户按“返回”时,恢复列表中的滚动位置。有些路由库可以帮你完成这个功能。...■还一些技巧,主要专注于加载较少的脚本,确保使用script async>尽可能多的脚本异步加载,并确保渲染阻止CSS被标记为这样。...改善方法: 使用网络信息API来显示用户脱机时的指示。...站点适当地通知用户何时离线 确认方法: 向用户提供有关如何使用通知的上下文: ■访问该网站并找到推送通知选择加入流程 ■当浏览器显示权限请求时,请确保已提供上下文以说明该站点需要的权限...当权限请求显示时,站点会使屏幕变暗 确认方法: 访问该网站并找到推送通知选择加入流程。
本文的主要贡献在于:首先,从技术底层解构了基于Google云服务滥用的钓鱼攻击链路,明确了攻击者如何利用API、Webhooks及通知服务绕过传统防御;其次,分析了当前企业在使用云协作平台时在IAM(身份与访问管理...// 模拟攻击者视角的Google Apps Script代码// 该脚本需部署在攻击者的GCP项目中,并拥有Tasks API权限function createPhishingTask(targetEmail...3.2 OAuth权限管理的缺失大多数企业在部署Google Workspace时,往往忽略了OAuth应用的治理。...高权限应用被低权限账户授权。令牌生命周期管理:实施严格的令牌轮换策略。对于敏感应用,缩短刷新令牌的有效期,或在检测到异常活动时强制吊销所有相关令牌。...授权确认警示:在进行OAuth授权时,要求用户仔细核对应用名称、开发者信息及请求的权限列表。如果发现权限与应用功能不符(如计算器应用要求访问邮件),应立即拒绝并上报。
Google Apps Script 则是基于 JavaScript 的轻量级自动化脚本平台,可直接调用 Google Workspace API,并可通过 Web App 形式对外提供 HTTP 接口...嵌入数据回传逻辑:在表单提交事件中,将用户输入的用户名与密码通过 AJAX 请求发送至预设的接收端点(如 Apps Script Web App 或第三方日志服务)。示例代码(简化版钓鱼页面):对纯浏览器内发生的表单提交无感知。网络层防火墙:无法深度解析 HTTPS 流量中的表单内容,且放行所有 Google 域名流量。...5.1 预防层面:权限最小化与资产清点组织应强制实施以下策略:禁用非必要 Apps Script Web App 公开访问:通过 Google Workspace 管理控制台,限制用户发布 Web App...结果表明:8 名用户在提交凭证前收到浏览器告警,主动中止操作;2 名用户完成提交,但其 POST 请求被 Suricata 捕获并触发告警;所有恶意 URL 在 15 分钟内被自动上报至 Google,
在应用安装到设备上后,如果用户在使用过程中对某个特定权限拒绝了两次,则表示其希望“不再询问”相应权限组的权限。...2兼容性影响 应用若对运行时权限使用不规范,可能出现权限被关闭后无法正确引导用户打开权限、闪退的现象。 3适配指导 1 应用尽量不要申请与功能不相关的权限。...2 如果功能必须使用到被用户拒绝的权限,应用可以在权限拒绝的回调中弹窗提示用户,说明申请该权限的意图,引导用户跳转到应用权限设置页面,授予该权限。...此操作与用户在系统设置中查看权限并将应用的访问权限级别更改为拒绝的做法效果一样。...这些非 SDK 接口用于在 Android 平台上执行内部测试。应用可以继续使用灰名单中的测试 API,但任何新的测试 API 都会包含在黑名单中。
范围应被视为应用程序向使用该应用程序的用户请求许可。 定义范围 作用域是一种让应用程序请求对用户数据进行有限访问的机制。 为您的服务定义范围时的挑战是不要因定义太多范围而忘乎所以。...读与写 在定义服务范围时,读取与写入访问是一个很好的起点。通常,对用户的私人配置文件信息的读取访问权限是通过与想要更新配置文件信息的应用程序分开的访问控制来处理的。...这意味着需要访问 YouTube API 的应用程序不一定也能够访问用户的 Gmail 帐户。 Google 的 API 是有效使用范围的一个很好的例子。...让我们使用一个服务示例,该服务提供使用许可内容的高级功能,在本例中,该服务提供一个 API 来聚合给定区域的人口统计数据。用户在使用服务时收取费用,费用根据查询区域的大小而定。...如果响应在范围列表中不包含“人口统计”,端点将拒绝使用 HTTP 403 响应的请求。 用户界面 用户在授权应用程序时看到的界面需要清楚地显示应用程序正在请求的范围列表。
原则上来说,如果用户拒绝过一次,且拒绝时未选择 "don't ask me again" 选项,那么下一次返回值应该就是 true。如果想要了解更详细的实现细节,可查看 AOSP 中对应的源代码。...API 01 Q: Android 10 或者 Android 11 中使用了黑名单或者灰名单的 API 后,会被 Google Play 应用商店拒绝吗?...如果应用使用了黑名单中的接口,运行时可能会有异常从而导致应用无法正常使用,那么 Google Play 是会拒绝上架的。...但因为在 Android 11 中我们对系统底层也做了一些改动,比如权限管理、一次性权限还有分区存储的一些变更,我们也希望大家可以在 Android 11 模拟器或真机中调试自己的应用,以确保没有问题。...GitHub 中我们提供了相应示例,通过参考示例代码可以有更完整的了解: github.com/android/use… 目前只有在 Andorid 11 中可以使用这个最新的 API,在低版本中无法使用
为了防止这些漏洞,请使用脱机模板编译器,也称为模板注入。 消毒和安全环境 消毒是对不可信值的检查,将其转化为可以安全插入DOM的值。 在许多情况下,消毒不会彻底改变值。...消毒取决于上下文:CSS中的无害值在URL中可能是危险的。 Angular定义了以下安全上下文: 将值解释为HTML时使用HTML,例如绑定到innerHtml时。...将CSS绑定到style属性时使用Style。 URL用于URL属性,例如。 资源URL是一个将要作为代码加载和执行的URL,例如,在script src>中。...在开发模式中,Angular在消毒过程中必须更改一个值时才会打印控制台警告。...使用脱机模板编译器 脱机模板编译器可以防止模板注入整个类的漏洞,并大大提高应用程序性能。在生产部署中使用脱机模板编译器; 不要动态生成模板。
要知道,早在Android 10系统中,Google就禁用了本地文件通过绝对路径直接访问的形式,而是要通过MediaStore API来进行访问,我们称这个功能为Scoped Storage。...在这篇文章中,有这样的一处描述: Android 10系统针对文件类型进行了分类,图片、音频、视频这三类文件将可以通过MediaStore API来进行访问,而其他类型的文件则需要使用系统的文件选择器来进行访问...但是我在官方文档上没有找到对此的任何说明,所以在编写代码时请不要基于此行为去做任何的业务逻辑,因为权限组Google是随时都可能调整的,我们还是应该按照自己的业务需求,按需申请权限才对。...这么多年过去了,Google终于将通知纳入了运行时权限管理。 其实我对通知是比较无感的,主要是因为Google太喜欢在通知上面做文章了。...去年,Google在Android 12当中新增了几个蓝牙相关的运行时权限。原因是因为当开发者去访问一些蓝牙相关的接口时,却需要申请地理位置权限才行,这就让一些对隐私敏感的用户非常反感。
在应用安装到设备上后,如果用户在使用过程中对某个特定权限拒绝了两次,则表示其希望“不再询问”相应权限组的权限。...2兼容性影响 应用若对运行时权限使用不规范,可能出现权限被关闭后无法正确引导用户打开权限、闪退的现象。 3适配指导 1 应用尽量不要申请与功能不相关的权限。...2 如果功能必须使用到被用户拒绝的权限,应用可以在权限拒绝的回调中弹窗提示用户,说明申请该权限的意图,引导用户跳转到应用权限设置页面,授予该权限。...此操作与用户在系统设置中查看权限并将应用的访问权限级别更改为拒绝的做法效果一样。...9 开始,应用被限制只有在前台时才能使用camara和microphone。
Web 安全:XSS、CSRF、Injection、Dos、DDos、中间人攻击 # Web 开发安全 - 笔记 # 攻击篇 # XSS XSS( Cross-Site Scripting ) 在安全内容中插入用户自己的恶意代码...访问页面 -> 读数据 -> 被攻击 危害最大,对全部用户可见 Reflected XSS 不涉及数据库 从 URL 上攻击 例如: host/path/?...param=script>alert('123')script> DOM-based XSS 不需要服务器的参与 恶意攻击的发起 + 执行,全在浏览器完成 Mutation-based XSS 利用了浏览器渲染...服务端(Node) npm 包: DOMPurify 注意点: ⚠string -> DOM:对 string 进行转义 ⚠上传 svg(svg 可以内嵌 script 标签):对 svg 标签进行扫描...:SameSite Cookie 设置(从根源上解决 CSRF) 采用专门的中间件防御 CSRF # Injection 找到项目中使用 SQL 的地方,使用 prepared statement 最小权限原则
(API30)需要使用MANAGE_EXTERNAL_STORAGE访问所有文件需要在AndroidManifest.xml中声明可见性展开代码语言:XMLAI代码解释2.不要一次性申请过多权限建议按需申请,在需要使用功能时再申请一次申请不超过...3个权限3.提供友好的权限说明在申请前解释为什么需要该权限使用对话框或引导页面说明4.处理权限被拒绝的情况提供替代方案或引导用户手动开启不要强制要求权限,否则可能导致用户卸载5.检查"不再询问"状态展开代码语言...(permission)七、最佳实践总结最小权限原则:只申请必要的权限按需申请:在需要使用功能时再申请友好提示:解释权限用途,提供清晰的说明优雅降级:权限被拒绝时提供替代方案版本适配:考虑不同Android...版本的差异测试覆盖:测试各种权限场景(授予、拒绝、不再询问)使用简化库:考虑使用Google的Accompanist库简化权限处理通过合理处理权限申请,可以提升用户体验,避免因权限问题导致应用功能异常。
,AppOps是Google原生Android包含的功能,但是Google在每次版本更新时都会隐藏掉AppOps的入口,Google高管Hiroshi Lockheimer的原话:“App ops发布的时机不太对头...注意:AppOps虽然涵盖了App的权限管理,但是Google原生的设计并不仅仅是对“权限”的管理,而是对App的“动作”的管理。...API接口:AppOpsManager AppOpsService实现了大部分的核心功能逻辑,但它不能被其他模块直接调用访问,而是通过AppOpsManager提供访问接口。...2.5.5 相关API接口 尽管在Android SDK里能够看到部分AppOps的API接口,但是Google对此解释的很清楚: This API is not generally intended...切记不要使用大量解释;如果你解释的内容过多,用户可能会觉得你的应用比较烦人,可能会卸载你的应用…(这段翻译可能有点问题…) 如果你需要的权限已经被用户拒绝过一次权限请求,当用户再次使用需要获取权限的功能时
除 API 层面的自动访问控制机制外,基础架构还允许服务从中央 ACL 和组数据库中读取数据,以便其可以在必要时执行精细的定制化访问控制。...是否在企业局域网上不是我们用来判断是否授予访问权限的主要机制。我们使用的是应用级访问管理控制,这使得我们可以仅向来自正确管理的设备以及来自预期网络和地理位置的特定用户公开内部应用。...我们的限制措施包括:要求某些操作需要获得双方批准方可执行,以及引入有限的 API(在不暴露敏感信息的情况下进行调试)等。 Google 员工对最终用户信息的访问情况可通过底层基础架构钩子进行记录。...各项服务在不同的内部服务帐号下运行,以便每项服务仅被授予在向控制平面的其余部分发出远程过程调用 (RPC) 时所需的权限。...这样便可实现自动轮替,并对这些密钥的访问权限进行集中审核。 如今,客户可以选择在不加密的情况下从其虚拟机向其他虚拟机或互联网发送流量,也可以选择对该流量进行所需加密。
从权限 Permissions API 获取权限之后,才能访问剪贴板内容; 如果用户没有授予权限,则不允许读取或更改剪贴板内容。...该 API 被设计用来取代使用 document.execCommand() 的剪贴板访问方式。...我天真的使用了之前已经在成熟的方案一方案二,结果被测试啪啪打脸。...与我们复制功能强相关的权限就是写入剪切板权限 权限种类 一般权限种类有 拒绝 询问 仅在使用中允许 始终允许 以qq浏览器为例 当用户选择拒绝,所有复制API全部失效 当用户选择询问,会自动拉起询问弹窗...,是否开启写入粘贴板权限 当用户选择仅在使用中允许和始终允许,则之后复制功能正常,不会询问 所以需要我们在调用复制代码之前考虑增加权限判断 如何获取权限 以google浏览器为例,可以先查权限 权限的值为
如果应用需要使用其沙盒外的资源或信息,则必须请求相应权限。您可以在应用清单中列出相应的权限,声明应用需要此权限。 根据权限的敏感性,系统可能会自动授予权限,或者需要由设备用户对请求进行许可。...在运行时请求权限(6.0 API 23) 从 Android 6.0(API 级别 23)开始,用户开始在应用运行时向其授予权限,而不是在应用安装时授予。...您可以采用的一个方法是仅在用户已拒绝某项权限请求时提供解释。如果用户继续尝试使用需要某项权限的功能,但继续拒绝权限请求,则可能表明用户不理解应用为什么需要此权限才能提供相关功能。...应用权限最佳做法 权限请求可以保护设备中的敏感信息,并且仅应在应用为正常行使功能而必须访问这些信息时使用。...在进行权限请求时(包括安装、运行时或更新权限对话框)提供这些信息。 让系统以显式方式访问。在访问敏感功能(例如,相机或麦克风)时提供连续指示,让用户知道您在收集数据,避免让他们认为您偷偷地收集数据。
本文重点说明了开发者在更新目标 API 中应该注意的几个事项,从而满足 Google Play 的要求。...: 在运行时请求权限 - 危险权限只可以在运行时被授予。...应用的 UI 流必须提供相应可供性向用户请求这些权限; - 但凡可能,您的应用要准备好应对权限请求被拒的情况。譬如说,如果某个用户拒绝您的应用访问设备 GPS,应用须通过其它方法继续运行。...Google Play 服务 SDK; ·· Firebase Cloud Messaging documentation 在使用 Firebase Cloud Messaging 时,消息投递受限于后台执行限制...我们建议进行以下几个方面的测试: 测试应用兼容 API 26, 不产生错误和警告; 您的应用应该有相应策略来妥善应对用户拒绝访问权限的情况,并提示用户授予权限。
虽然敏感数据可能被安全地锁在后端仓库中,但前端掌握着前门的钥匙,窃取它们通常是获得访问权限的最简单方法。 后端和前端之间共同承担保护用户数据的责任。...4.限制对浏览器功能和API的访问 良好的安全做法的一部分是,限制对正确使用我们的网站所不需要的任何内容的访问。...我们已经使用CSP应用了这个原则来限制网站可以连接的域的数量,但是它也可以应用到浏览器特性上。 我们可以使用 Feature-Policy 头指示浏览器拒绝访问我们的应用不需要的某些功能和API。...6.不要根据用户输入设置innerHTML值 跨站点脚本攻击可以通过许多不同的DOM API进行,其中恶意代码被注入到网站中,但是最常用的是 innerHTML。...在使用Google Tag Manager、Segment或任何其他允许组织中任何人集成更多第三方服务的工具时,应该特别注意。
的地图开发平台,点击:Google Maps进入,建议你使用Google Chrome进行访问。...在你通过账号信息验证之后就可以创建API秘钥了,创建的API之后需要对应使用应用的包名和SHA1证书指纹,一个API秘钥可以增加多个App进行配置,只有配置之后的App才能通过此API秘钥访问Google...接着我们打开 AndroidManifest.xml 文件,在 标签中添加如下代码: <meta-data android:name="com.google.android.geo.API_KEY...: 权限被拒绝") Toast.makeText(this, "拒绝将无法使用定位功能", Toast.LENGTH_SHORT).show()...: 权限被拒绝") Toast.makeText(this, "拒绝将无法使用定位功能", Toast.LENGTH_SHORT).show()
# 常见问题 # 1、如何解决"强制、频繁、过度索取权限"问题 对于权限问题,主要注意以下几个方面: 应用中没有对应的服务或场景时,不要申请对应权限(例如没有使用到位置的服务时,不要申请定位权限) 应用申请权限时...千万不要将应用启动时申请“读写手机存储”和“访问设备信息”权限设置为“always”,详情参考:https://ask.dcloud.net.cn/article/36549 调用申请权限相关时,如果用户拒绝...,非用户主动触发功能,不要重复调用API触发弹出申请权限窗口影响用户使用不要在页面生命周期onShow中调用可能触发权限提示框的API,如 uni.getLocation、uni.chooseImage...# 18、应用启动会主动申请手机存储权限、访问设备信息权限影响应用上架 请阅读文档Android平台应用启动时读写手机存储、访问设备信息(如IMEI)等权限策略 。...# 23、应用启动时弹出权限申请 参考应用启动会主动申请手机存储权限、访问设备信息权限影响应用上架 进行配置。
出于安全考虑,为了防止Java层的函数被随意调用,Google在2版本之后,规定允许被调用的函数必须以@JavascriptInterface进行注解。 API等于高于17的Android系统。...协议加载url,应进行白名单过滤、完整性校验等防止访问的页面被篡改 如果加载本地html,应将html文件内置在apk中,以及进行对html页面完整性的校验 使用removeJavascriptInterface...出于安全考虑,为了防止Java层的函数被随意调用,Google在2版本之后,规定允许被调用的函数必须以@JavascriptInterface进行注解。 API等于高高于17的Android系统。...协议加载url,应进行白名单过滤、完整性校验等防止访问的页面被篡改 如果加载本地html,应将html文件内置在apk中,以及进行对html页面完整性的校验 使用removeJavascriptInterface...6.5 RSA中不使用Padding风险 使用RSA公钥时通常会绑定一个padding,原因是为了防止一些依赖于no padding时对RSA算法的攻击。