我是Relay和GraphQL的新手,无法找到答案。如果我必须为实现Node接口的每个对象提供唯一的ID(根据Relay规范),那么如何防止数据泄漏。是什么阻止了具有这种id的人获取他应该无法获取的数据。
客户端:React + Relay
服务器:MongoDB + Prisma + GraphQL-瑜伽
假设我们有
query{
node(id : "PrivateStuffId") {
id
secretData
}
}
如果有人强行使用此ID或从用户那里窃取ID,该怎么办
id
有什么方法可以保护这些数据?
更新:可以通过在将public class TestingSomething {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setBounds(450, 250, 200, 80);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// JPanel
newClass panel = new newClass();
JButton button = new JButton("Press me!");
// button action to panel
button.addActionListener(panel);
panel.add(button);
frame.add(panel);
frame.setVisible(true);
}
}
class newClass extends JPanel implements ActionListener {
// Action to perform
@Override
public void actionPerformed(ActionEvent e) {
setBackground(Color.BLUE);
}
}
提供给客户端并根据请求进行解码之前进行编码来提高安全性。但是,如果编码的ID泄漏,它将无法保护数据
更新:id中包含ID的JWT可能是一个选项。但是很难确定令牌应该存在多长时间。