4. Security Considerations (安全考虑)
URI模板不包含活动或可执行内容。但是,如果攻击者控制了模板或在允许在扩展中使用保留字符的表达式内控制了变量值,则可能制作出意外的URI。在任何一种情况下,安全考虑主要由以下因素决定:谁提供模板,谁为模板内的变量提供值,扩展发生在什么执行上下文中(客户端或服务器),以及生成的URI在哪里使用。
本规范不限制URI模板可能在哪里使用。当前的实现存在于服务器端开发框架内和客户端JavaScript中,用于计算链接或表单。
在框架内,模板通常充当数据可能在稍后(请求时)URI中出现在客户端请求中的位置的指南。因此,安全问题不在于模板本身,而在于服务器如何在正常Web请求中提取和处理用户提供的数据。
在客户端实现中,URI模板具有许多与HTML表单相同的属性,只是限于URI字符,并且可能包含在HTTP头字段值中而不仅仅是消息体内容中。应注意确保潜在危险的URI引用字符串,例如以"javascript:"开头的字符串,除非模板和值都由可信来源提供,否则不会出现在扩展中。
其他安全考虑与URI的安全考虑相同,如[RFC3986]第7节所述。