【发布时间】:2018-10-25 15:37:03
【问题描述】:
我的数据库中有以下表格:
- 学生(student_id、电子邮件、姓名……)
- 课程(course_id、course_name、...)
- 注册(student_id、course_id、分数...)
我想实现这个功能:
- 当管理员想要搜索特定城市所有学生的列表时, 列表显示为 HTML 表格。
这可以通过查询学生表来实现。
- 当管理员单击任意行时(从我们在 1 中显示的表中) 然后管理员应该看到学生注册的所有课程的列表 在。
我的问题是我应该如何实现它?
我可以想到以下几种方式:
方式1:
https://stackoverflow.com/a/45135144/3494107
我需要有一些方法来确定管理员点击了哪一行,为此我可以在结果表中传递 student_id 为 1(显示所有学生的列表),但由于 student_id 没有向管理员传达任何关于学生的信息我可以只需将其隐藏在<tr> 或<a href=/enrollment/${student_id}> 的data-* 属性中,以便我可以使用它来识别管理员单击了哪一行。我的一些朋友告诉我,我不应该暴露代理密钥,这对安全性不利。那么有什么方法可以将这个 student_id 关联到表行但对用户隐藏,或者可以向用户公开代理键内容?
方式 2:
我可以在数据库中创建一个包含来自特定城市的所有学生的临时表,并为其分配行 ID。现在结果我可以将每一行的这个行 ID 添加到 data-* 属性中。此行 ID 不传达有关实际 student_id 的任何信息,我可以使用此行 ID 查询临时表以获取可用于在注册表中搜索的实际 student_id。现在我需要在用户离开当前页面(转到其他功能)时删除这个临时表,现在我应该如何检测用户何时离开这个页面?
我想了解如果我向用户公开代理密钥会出现什么安全问题?
【问题讨论】:
标签: mysql node.js html security web