防止其他人调用您的 JSON Web 服务

2023-11-29

假设我有一些代码可以通过 JSON 服务调用创建 HTML 页面。

如何防止其他人复制粘贴源代码、调用服务并获取第一个用户的结果集?

如果我将域作为服务的参数或获取其他内容(例如用户名或密码),它们也可以被复制和粘贴并用于另一个域。

我没有找到阻止这种情况的方法,还是我错了?


你是对的,没有办法绝对阻止这种情况,但你可以让它变得更加困难,你可以让它变得更加困难,这样你就可以识别滥用 API 或自己被黑客攻击的用户。

做到这一点的方法是使用证书(非对称加密)。每个客户端都有一个私钥和一个公钥,对于该客户端来说是完全唯一的。公钥是公共知识(通常存储在服务器上或第三方数据库(如 Comodo 或 Verisign)中)。私钥对客户端来说是私有的。服务器还有一个私钥/公钥。

每次客户端发出请求时,该请求都会使用服务器的加密公钥,并用客户端的签名(加密)私钥。服务器的密钥确保只有服务器可以解密请求,而客户端的密钥确保只有客户端可以加密该请求,以便使用客户端的密钥完全可逆公钥.

这意味着恶意用户只能以他/她自己的名义发出请求,因此您会知道谁在搞乱,或者您知道哪个用户受到了威胁,以便您可以通知他/她并禁用他们的帐户。这还可以防止其他用户嗅探线路并恢复其他用户的请求以执行重放攻击。

还有其他方法可以实现此目的,例如使用安全 cookie 来跟踪用户请求。我将发布一些有关安全 cookie 实施的有用问题的链接。其中一些适用于其他平台,但概念是相同的。

这是很多需要考虑的内容。您可能会想要多读一些书在开始实施之前。

其他有用的问题:

  1. REST Web 服务身份验证令牌实施
  2. 在 iPhone 应用程序中使用 REST API 时的安全性
  3. https://stackoverflow.com/questions/15390354/api-key-alternative/15390892#15390892 链接已损坏。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

防止其他人调用您的 JSON Web 服务 的相关文章

  • android中如何将字符串转换为unicode

    我正在解析一些unicodes from json to my android应用程序 API 给出unicodes像这样的图标 ue600 当我将这个unicode直接添加到textview like textview setText u
  • HTML5 音频暂停不起作用

    document getElementById s currentRadio currentSong pause 目前这并没有暂停音频 而播放它效果很好 document getElementById s currentRadio curr
  • 使用 WCF 和 .NET 4.0 在 C# 中实现 SOAP 客户端

    我在 NET 4 0 中开始使用 WCF 时遇到问题 这是我的情况 我用 PHP 创建了一个小型 SOAP 服务器 我有一个 C 项目 我想在其中连接到此服务器并启动 SOAP 通信 我的问题是 我不知道如何在 C 中执行此操作 我找不到
  • 滚动时多个图像淡出

    我有一个页面 在每个导航点上 网站中间的图像通过淡入淡出来改变颜色 我设法淡入 active3 fadeIn 2000 不过 我遇到了再次淡出它的问题 让我尝试解释一下 我有 5 个导航点和 5 个不同的图像 如果我 例如 从第一个导航点滚
  • 单击后按键不会删除过渡

    我认为问题可能出在const 音频 document querySelector audio data key e keyCode const key document querySelector key data key e keyCod
  • PHP 可以解压缩使用 .NET GZipStream 类压缩的文件吗?

    我有一个 C 应用程序 它与基于 PHP 的 SOAP Web 服务进行通信以进行更新和许可 我现在正在开发一个反馈系统 供用户通过软件自动提交错误和跟踪日志 根据我之前发布的问题 我认为 Web 服务将是实现此目的的最佳方法 最有可能以最
  • 我如何浏览 json?

    我有一些在对象中的 JSON 但我似乎可以返回 json 示例的值 如下所示 rootLayout main layoutDescriptions id main container type Tabs content type Panel
  • JWT(Json Web 令牌)与自定义令牌

    我仔细查看了问题 但没有找到任何可以解决我的疑问的内容 我找到了有关 JWT 的大量信息 但在比较 JWT 相对于针对 REST 服务生成自定义令牌来对身份验证请求提供的优势时 发现的信息并不多 与生成自定义生成令牌相比 使用 JWT Js
  • 从 HTML 字符串中解析和选择

    使用 ajax 调用 我返回了页面的partialView HTML 但在显示它之前 我希望从主 div 中提取信息 如果我创建一个浮动窗口 该数据只是大小信息 Code div class window details more data
  • 使用 Ajax Jquery post 请求进行 Json 劫持

    昨天 我读了一些关于如何预防的好文章使用 Asp Net MVC 进行 Json 劫持 http haacked com archive 2009 06 24 json hijacking aspx 规则是 永远不要通过 get 请求发送
  • 多行有多个提交按钮,我应该为每个按钮制作一个表单吗?

    我列出了大约 20 行 每行代表一个订单 每行需要有 3 个按钮 每个按钮单击将执行不同的操作 我有 3 个操作来处 理每个按钮发布请求 我只是不确定如何为每个按钮设置 Html 表单 tr td td tr
  • BeautifulSoup4:选择属性不等于x的元素

    我想做这样的事情 soup find all td attrs class foo 我想找到所有不具有 foo 类的 td 显然上面的方法不起作用 那怎么办呢 BeautifulSoup确实使 汤 变得美丽且易于使用 You 可以传递一个函
  • 在 Dartlang 中下载大文件

    我需要使用 dartlang 从浏览器下载较大的文件 我一直在使用 data uri 来下载 但已经达到了该方法的大小限制 想知道最好的方法是什么 我研究了使用 HTML5 文件系统 API 但它已被弃用 显然在大多数浏览器中从未真正实现过
  • 返回视图作为 JSON 对象的一部分

    我有一个应用程序只加载一次完整视图 我这样做的原因并不重要 重要的是 其余内容只会以部分视图的形式返回 除了一些内容之外 我还有一些 JSON 对象 我想通过每个 AJAX 请求在服务器之间来回传递 有没有办法返回一个 JSON 对象 并将
  • 来自 IE 的 Web 服务调用正常,但在 Chrome 和 Mozilla 中不起作用

    我正在使用以下代码调用网络服务 function CallService ajax type GET url http devpc4 5566 Service1 asmx GetItems dataType json data conten
  • 如何在html中定义条件换行符?

    我希望这根绳子断在 如果需要的话 没有地方可以写了 7 380 Ft 159 Ft term kd jjal like 7 380 000 Ft 159 125 Ft term kd jjal 如何在html中实现这一点 nbsp 产生 错
  • 具有隐式授权的 OAuth 应用程序中的客户端模拟

    来自 OAuth 草案 隐式section https datatracker ietf org doc html draft ietf oauth v2 31 section 1 3 2 在隐式授权流程期间发出访问令牌时 授权服务器不对客
  • mysql_query 保留返回时在表中创建的数据类型?

    我在mysql中有一个表 CREATE TABLE user id INT name VARCHAR 250 我查询表 result mysql query SELECT id name FROM user 我收集结果 while row
  • 如何在单元测试中使用 JSON 发送请求

    我的 Flask 应用程序中有在请求中使用 JSON 的代码 我可以像这样获取 JSON 对象 Request request get json 这一直工作得很好 但是我正在尝试使用 Python 的 unittest 模块创建单元测试 但
  • 如何获取所有mysql元组结果并转换为json

    我能够从表中获取单个数据 但是当我试图获取表上的所有数据时 我只得到一行 cnn execute sql rows cnn fetchall column t 0 for t in cnn description for row in ro

随机推荐

  • 如何/无法将乱码/奇怪的文本转换为 utf-8 android (java)?

    我的文字乱码 由从 MySql 获取的 Web 服务 php 返回 现在我试图在android中将其解码为utf 8 但它不起作用 我努力了 String s text returned by web service taking it a
  • iOS Swift 3 捆绑通知

    在我的应用程序中 我正在使用 firebase 推送通知 问题是 当用户长时间连接到互联网时 他们会收到大量通知作为单独的通知 是否可以像whatsapp一样接收通知 您有10个新通知 如果用户一次收到超过 1 个通知 则意味着我们需要将其
  • 为什么 Hibernate Tools hbm2ddl 生成不考虑 Bean Validation 注释?

    摘要 我正在使用 Hibernate Tools 4 0 0 CR1 和 Hibernate 4 2 包括 Hibernate Validator 但未选择 Bean Validations 架构is部署时正确生成hibernate hbm
  • DynamoDB NoSQL Workbench 测试表不可见

    我是 DynamoDB 的新手 正在使用 NoSQL Workbench 进行学习 数据建模器 部分中有一个新的 示例 表 我在 操作生成器 部分下建立了一个新的本地连接 以处理 测试 示例 表 连接创建成功 没有错误 但我在连接部分下看不
  • 通过变量访问 bash 位置参数

    如何通过变量访问 bash 位置参数 例如我有一个变量 pos 它可以是 1 到 6 之间的任何值 比如说 If pos 1 我想要做 echo 1 If pos 2 我想要做 echo 2 So on 直觉上 我想做类似的事情 echo
  • 如何在 jQuery 中选择没有给定类的所有元素?

    鉴于以下情况 ul li Item 1 li li class active Item 2 li li Item 3 li li Item 4 li li Item 5 li ul 我怎样才能选择除第 2 项之外的所有项 又名 ul lis
  • 查找具有额外资格标准的所有匹配项

    给出诸如以下的句子 Boy has a dog and a cat Boy microwaves a gerbil Sally owns a cat 对于每个句子 我想要一个动物列表 定义为 狗 猫 或 沙鼠 其中 男孩 是第一个单词 对于
  • 如何使用 appCompat 22.1 及更高版本中的新 AlertDialog 并设置其样式

    我正在尝试从默认的 android 迁移AlertDialog到 appCompat 22 1 中包含的新版本 到目前为止我明白你只需要导入android support v7 app AlertDialog包以便使用它 但我该如何设计它呢
  • Npm 安装不起作用

    我已经在ubuntu上安装了nodejs node v v0 10 25 npm v gives 1 3 10 当我跑步时 sudo npm install g or sudo npm install 它给了我以下错误 第1523章 152
  • 从 C 中的命令行捕获可变长度字符串

    我到处寻找问题的答案 但尚未找到问题的可靠答案 我目前正在用 C 语言编写一个程序 专门针对 UNIX 命令行 我使用 Linux 作为我的开发环境 但我希望这个程序尽可能可移植 现在 我有一个提示用户输入的基本 shell 然后 用户将输
  • 如何放松对已知变体的嵌套匹配的非详尽模式检查?

    我如何说服 Rust 编译器内部match这里的表达很好 因为外部match已经限制了可能的类型 enum Op LoadX LoadY Add fn test o Op match o Op LoadX Op LoadY gt do so
  • javascript onkeydown - event.which 只给出大写字符的问题

    我编写了一段 JavaScript 代码来在文本区域内按下按键 我已使用 onkeydown 事件来捕获按下的键 并在触发事件时调用函数 在函数中 我使用 event which 来按下按键 但这并没有给出正确的按键按下 对于按下的任何字符
  • 日期格式 yyyy-MM-ddTHH:mm:ssZ

    我认为这应该很简单 但无法得到它 在此格式中 Z 是时区 T 是长时间模式除了使用之外 我怎样才能获得这种格式的日期 DateTime dt DateTime Now Console WriteLine dt ToString yyyy M
  • Magento“忘记密码”电子邮件以错误的语言发送

    我有一个具有多种语言的 Magento 网站 我已经设置了语言包 网站上的所有内容似乎都能正确翻译 交易电子邮件也以正确的语言发送除了 忘记密码 始终以德语发送的电子邮件 这就是我所做的 安装语言包并确保所有模板和文件夹结构正确 例子 ap
  • R Shiny:如何在 NULL 时不显示绘图

    如果您在 R 工作室中运行此代码 您会发现 NULL 数据的绘图仍然是一大块白色 数据为NULL时怎么不显示呢 在其他图表中 大白板看起来不太好 library shiny server lt function input output o
  • 在递归 CTE 下控制同级顺序?

    我有一个 CTE 查询 用于查找主叶和子叶 但我无法控制叶子选择顺序2个兄弟姐妹之间 表中的每一行声明为 childID INT parentID INT NAME NVARCHAR 30 location int Where locati
  • WordPress 中每页的自定义 CSS

    大家早上好 我为我们网站内的某些页面创建了不同的背景和一些其他图像 目前 以下代码与我们网站上的 儿童 页面配合良好
  • jsonp 调用中的错误仅来自 firefox-extension

    我的错误的奇怪之处在于它只发生在我在这篇文章底部链接到的 firefox 扩展中 我无法在任何其他设置中重现此错误 我有这个ajax请求 ajax type GET dataType jsonp url url jsonpCallback
  • Kubernetes docker 容器中的前端 Vue.js 应用程序无法连接到后端

    I have built a front end Vue js application running on a docker container under kubernetes environment the backend is al
  • 防止其他人调用您的 JSON Web 服务

    假设我有一些代码可以通过 JSON 服务调用创建 HTML 页面 如何防止其他人复制粘贴源代码 调用服务并获取第一个用户的结果集 如果我将域作为服务的参数或获取其他内容 例如用户名或密码 它们也可以被复制和粘贴并用于另一个域 我没有找到阻止