java - 在前端编程线程对话的正确方法

标签 java ajax database hibernate feed

我正在开发一个需要线程对话的项目:有人发布了一些新内容,这会创建一个新线程,并且所有回复都附加到该线程。从技术角度来看,我的这个工作很好,但我担心我的解决方案的安全性:

为了回复某个线程,该线程的id,简单来说就是该线程的数据库id,在该线程对应的html中。这样,javascript 就可以获取正在回复的线程的线程 id,并使用它通过 ajax 将响应文本和线程 id 传递到后端。它还用于查找 html 中应附加回复的位置。

此 html 的示例如下:

<div id='thread_1' threadId='1'>Hey, how's it going?
  <div id='replies_1' threadId='1'>
  </div>
  <input id='reply_text_1' type='text' value='Reply...' threadId='1'></input>
  <input id='reply_button_1' type='submit' value='Reply' threadId='1'></input>
</div>
<div id='thread_2' threadId='2'>Anyone here?
  <div id='replies_2' threadId='2'>
    <div id='reply_2_1'>Yes, I'm here</div>
  </div>
  <input id='reply_text_2' type='text' value='Reply...' threadId='2'></input>
  <input id='reply_button_2' type='submit' value='Reply' threadId='2'></input>
</div>

在前端代码中包含数据库 ID 似乎不是一个好主意 - 这似乎是一个潜在的安全风险。问题是,我怎样才能安全地做到这一点?如何将前端的线程响应关联到后端数据库中的线程,同时不暴露我的数据库 ID?

仅供引用 - 如果有帮助的话,后端是 Java + Spring + Hibernate。

非常感谢任何帮助!!

最佳答案

在 html 中包含数据库 ID 不会带来安全风险。在任何网站中,您经常会在 html 和 URL 中看到它们。重要的是您在回调中检查当前用户是否有权删除/读取/回复消息。

关于java - 在前端编程线程对话的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8564252/

相关文章:

java - Ajax 链接通过 onClick() 方法中的 setVisible() 更改可见性

mysql - 为什么我第一次授予用户权限时会创建 "GRANT USAGE"?

sql - MS Access - 允许空的 sql 表达式?

java - 在父类(super class)构造函数中调用抽象方法

java - Swing:关闭一帧并同时打开另一帧

java - processDebugManifest 错误 - Android Studio

java - 在 Ehcache 3 XML 配置中同时设置 TTL 和 TTI

ajax - 当 AjaxFileUpload 触发 UploadComplete 事件时访问其他控件值

javascript - 无法在 Python 中的 AJAX 上使用 javascript

java - 新应用程序数据决策