node.js - 在 url 中显示用户输入是否危险

标签 node.js security url express user-input

我正在使用node.js和express4

在我的应用程序中,用户可以撰写帖子并为其指定标题。我将为每个帖子生成一个唯一的 ID。

然后可以通过以下网址访问帖子:domain/posts/ID-of-the-post/title-of-the-post 服务器端,解析 url 后,我只使用帖子的 ID 来正确查询我的数据库。 我从不使用网址中的帖子标题,因为我从数据库中安全地获取了它。

基本上,网址 domain/posts/A-valid-ID-of-a-post/ANYTHING 指向帖子的页面。

我的问题是:这危险吗?攻击者可以利用这个吗? 如果是,我该如何保护自己?

注意: 我受到了针对 html 注入(inject)的保护,因此我的问题仅与 URL 有关。

最佳答案

你可以使用它,事实上我见过很多网站/论坛和stackoverflow本身都使用这种方法,例如查看网页的当前url:

stackoverflow.com/questions/25763180/is-it-dangerous-to-display-user-input-in-url

这并没有那么危险,只要记住它是未经 sanitizer 的输入并相应地对待它 - 潜在的输入攻击(实际上,总是这样做!)

关于node.js - 在 url 中显示用户输入是否危险,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25763180/

相关文章:

c# - Web API : A potentially dangerous Request. 从客户端检测到路径值

mysql - 用于 Node.js 的 MySQL 库中的错误

security - 我可以使用 CSP 将请求限制为 https : AND 'self' ?

javascript - nodemon 包未安装在 Nodejs 中

sockets - 在套接字连接时从 kext 验证客户端

security - 基于另一个维度属性的 SSAS 动态维度安全

java - HttpsURLConnection 中的什么方法调用实际发送了 HTTP 请求?

javascript - 如何在 ServiceWorker 中获取自己的 URL 或主机名?

node.js - 在 node.js 上强制使用 TLS 1.1 或更高版本

node.js - 创建 promise 数组