Google Apps Script中如何清理表单输入XSS避免邮件HTML渲染问题
解决Google Apps Script中HTML标签转义问题
Google Apps Script没有专门用于HTML转义的内置函数,你提到的encodeURI/encodeURIComponent是针对URL编码的,完全不适合处理HTML特殊字符,必须手动实现转义逻辑。
需要转义的核心HTML特殊字符有5个:&、<、>、"、',转义后它们会变成对应的HTML实体,这样在HTML格式的邮件里就会显示原始字符,而不会被解析渲染。
下面是一个简单的转义函数实现:
function escapeHtml(inputText) { if (typeof inputText !== 'string') return inputText; return inputText .replace(/&/g, '&') .replace(/</g, '<') .replace(/>/g, '>') .replace(/"/g, '"') .replace(/'/g, '''); }
使用的时候,只需要把表单获取到的输入值传入这个函数,再将返回结果插入邮件内容即可。比如:
// 假设formResponse是从Google Forms获取的响应对象 const userInput = formResponse.getItemResponses()[0].getResponse(); const escapedInput = escapeHtml(userInput); // 将escapedInput插入HTML邮件模板中发送
如果你的邮件是纯文本格式,其实不会出现标签被渲染的问题,但如果是HTML邮件,这个转义步骤是必须的,能有效避免用户输入的HTML破坏邮件格式或者注入恶意代码。
内容的提问来源于stack exchange,提问作者Jeffrey
相关产品推荐
相关产品推荐

