如何保护中继中的查询节点(id:ID!)?

时间:2019-08-25 16:49:29

标签: reactjs security graphql relay

我是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可能是一个选项。但是很难确定令牌应该存在多长时间。

1 个答案:

答案 0 :(得分:0)

偶然发现了这个tutorial。长话短说的客户端在标头中提供身份验证信息,服务器使用中间件来处理此数据。可以通过context.request访问请求标头。