javascript - 在没有协议的情况下询问 URL 有什么问题吗?
问题描述
所以我们一直在向用户询问他们的社交媒体个人资料网址并将其显示在他们的个人资料上(这样,他们的朋友可以在访问个人资料时看到它)
我一直在使用<input type="url" ... />
前端验证。现在,我的客户想要它,这样他们就可以在现场输入facebook.com/blabla
或不输入协议。wwww.facebook.com/blabla
我的直觉告诉我,在没有协议的情况下询问“url”在某种程度上并不理想——但我找不到任何支持这种感觉的东西。
我不是在问如何跳过验证或只是添加协议 onsubmit(或与代码逻辑相关的任何内容)。
我要问的是,是否有任何“文档”/“规则”或者说在没有协议的情况下要求 url 不是一个好习惯,为什么?
解决方案
简而言之,是的,有理由/规则专门要求 HTTPS 或自己在后端实现它。
根据我的个人经验,您可能会在客户端出现安全错误,因为浏览器可能会将其检测为邪恶的双链接。
https://www.paulirish.com/2010/the-protocol-relative-url/说:
既然所有人都鼓励使用 SSL,并且没有性能问题,那么这种技术现在是一种反模式。如果您需要的资产在 SSL 上可用,则始终使用 https:// 资产。
如果您在后端修复它以自己添加 url 协议,尽管这一切都没有实际意义,那将是最好的解决方案。我会使用前端验证仅检查它是否输入有效方式,然后再次检查后端,并确定他们以什么形式进行操作,即。https ://google.com、www.google.com、google.com 等。
祝你好运!
推荐阅读
- java - 从 Stream 中删除具有空值的项目
- docker - docker host 可以拦截容器内的本地流量吗?
- powershell - 当目标是本地主机时,powershell Invoke-RestMethod/Invoke-WebRequest 是否会忽略代理参数?
- c# - 在.net核心工作进程中记录异常
- java - 直接从 JPasswordField 获取字符串格式的密码
- jwt - 刷新不记名令牌并删除旧令牌
- image - 将图像从 Google Colab 保存到 Google Drive
- javascript - Vue js项目的“服务”命令不起作用
- c - 包含的 .cpp 文件中的“未知类型名称 'size_t'”错误,但在包含的文件名更改为 .h 文件时删除。为什么?
- post - 无法通过 POST 请求获得预期的响应