我几乎完成了一个脚本的开发,该脚本公开了一个 API,该 API 可用于在任何 Web 浏览器存储技术上统一执行存储操作。
我正在处理的最后一点功能是条件检索和删除操作,(当然)需要提供一个条件表达式,该表达式将被评估(使用 eval() 或者在 webSQL 的情况下,直接插入在 WHERE 之后)。
我需要至少两个成熟的解析器(一个用于 webSQL,一个用于 indexedDB)来验证输入是否有效,但在安全评估之后,似乎不需要解析输入,甚至对其进行清理。
我有点不确定评估原始字符串的安全隐患,所以我希望能对我的安全评估提供一些意见:
用户:
评估用户直接或间接提供的输入应该不是问题,因为存储技术的 sanboxed 特性(他/她将操作只有他/她可以访问的给定来源的数据),并且事实上用户无法直接在浏览器中完成的 API 无法完成。
第三方:
存储技术遵循同源策略,因此无法访问属于其他源的沙盒存储区域
我觉得我在评估中忽略了一个或多个可能的安全问题;是这样吗?还是评估(大部分)正确?