AMP- Toolbox 脚本 CSP
计算 内容安全政策
用于给定脚本的散列,格式为预期 amp-script。 。 。 .
使用时需要CSP amp-script 带有内线或跨源脚本.
使用量
通过 :
$ npm install @ampproject/toolbox-script-csp
使用模块
该模块暴露了单一功能, calculateHash(src, options?)。 。 。 .
src 可以是字符串(在这种情况下假设UTF8编码)或
DataView
例如 Buffer。 。 。 .
options 用于覆盖默认选项.
选项
algorithm覆盖要使用的散列算法。 现在,唯一的 支持的算法amp-script实值sha384默认值.
示例
以下是如何使用 calculateHash 函数生成一个
amp-script CSP头条.
注意在计算 hash 并必须完全匹配内入脚本中使用的白空格.
const {calculateHash} = require('@ampproject/toolbox-script-csp');
const script = `
const subject = 'world';
console.log('Hello, ' + subject);
`;
const hash = calculateHash(script);
console.log(hash); // sha384-xRxb5sv13at6tVgZET4JLmf89TSZP10HjCGXVqO9bKWVXB0asV2jLrsDN8v4zX6j
生成的散列可用于 <meta> 标记此方式 :
<!doctype html>
<html ⚡>
<head>
...
<meta name="amp-script-src" content="sha384-xRxb5sv13at6tVgZET4JLmf89TSZP10HjCGXVqO9bKWVXB0asV2jLrsDN8v4zX6j">
</head>
<body>
...
<amp-script layout="container" script="example"></amp-script>
<script id="example" type="text/plain" target="amp-script">
const subject = 'world';
console.log('Hello, ' + subject);
</script>
</body>
</html>