是 @, !符号对于 url 和路由配置来说是安全的吗?

发布于 2024-10-14 19:21:39 字数 365 浏览 3 评论 0 原文

我有一些像我的路由器映射中一样的网址

/section/{{some_section_name}}
/topic/{{some_topic_name}}

现在我正在考虑将该部分转换为简短的 /!{{some_section_name}} 以避免显式拼写 /section

同样,我想使用 /@{{some_topic_name}} 而不是 /topic/{{some_topic_name}}

我相信浏览器不会自己对这些字符进行编码。可以用吗!和上面提到的路径中的@符号?请告诉我在网络中使用此类约定的副作用。

I have some urls formed like in my router mapping

/section/{{some_section_name}}
/topic/{{some_topic_name}}

Now I am thinking to convert the section into shorted by
/!{{some_section_name}} to avoid the explicit spelling of /section

Similarly I would like to use
/@{{some_topic_name}} instead of /topic/{{some_topic_name}}

I believe that browser shall not encode these characters by its own. Is it OK to use ! and @ symbols in the route as mentioned above? Please give me side effects using such a conventions in the web.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

泛泛之交 2024-10-21 19:21:39

@ 字符在 URL 上具有特殊含义 - 它是(可选)用户名/密码和主机名之间的分隔符:

//<user>:<password>@<host>:<port>/<url-path>

请参阅 RFC 1738

因此,虽然严格来说这不是 MVC 本身的问题,但更多的是 URL 模式的问题。


对于 HTTP,! 字符没有这样的限制。上面链接的 RFC 中列出了允许的字符。

The @ character has special meaning on a URL - it is a separator between the (optional) username/password and the host name:

//<user>:<password>@<host>:<port>/<url-path>

See section 3.1 of RFC 1738.

So, though not strictly a problem for MVC as such, it is more of an issue with the URL schema.


For HTTP there is no such restriction on the ! character. The allowed characters are listed in the RFC linked above.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文