安全发送 PHP 从 iOS 获取信息

2024-03-04

情况是这样的,我有一个 iOS 应用程序,其中有一部分用户将信息输入到特定标签中,然后我根据用户给定的信息创建一个 URL 请求,并将其发送到我的 PHP 后端。 URL 遵循以下结构:

http://www.somewebsite.com/send.php?title=hello&name=john&contact=email

现在上面的问题是,任何有权访问该 URL 的人都可以轻松地用垃圾邮件、太多提交等轰炸数据库。感觉非常不安全。我应该采取什么方法来使这个过程尽可能安全?

我目前的 PHP 知识水平是能够通过简单地使用“完成工作”的方法来完成任务(无论它们有多安全),但现在我开始达到需要保持安全性的地步、安全等考虑。有用的建议/见解将不胜感激。谢谢你!


确保这一点的最佳方法是将服务器端组件(即 PHP 部分)锁定在 OAuth2 身份验证层后面。我个人推荐此 OAuth2 服务器 https://github.com/thephpleague/oauth2-server以此目的。

一般工作流程将是这样的:

1. Send an API key/username/password/etc to an API endpoint (i.e. a URL)
2. Get a token, store it in memory for future use
3. Send this token on subsequent requests

此解决方案优于发送数据的哈希值(例如 MD5),因为这不会验证任何内容。它还解决了根本问题而不是隐藏它(例如,POST 而不是 GET 对于保护您的通信没有任何作用)。但是,OAuth2 不提供保密。中间的人仍然可以看到/破坏你的请求。

为了更好地保护您的用户,您应该使用HTTPS(TLSv1.2 与PFS https://en.wikipedia.org/wiki/Forward_secrecy)在您的应用程序上。只。甚至没有端口 80 HTTP 服务器,除了重定向到 HTTPS 服务器之外,还没有其他功能。还送HSTS https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security and HPKP https://developer.mozilla.org/en-US/docs/Web/Security/Public_Key_Pinning标头(如果 iOS 支持的话)。

如果您需要比 HTTPS + OAuth2 提供的更好的安全性,我建议学习应用程序安全 https://github.com/paragonie/awesome-appsec全职,因为只有当您对该主题拥有广泛的知识时,更详细和复杂的解决方案才有意义。 (取决于您的威胁模型 https://en.wikipedia.org/wiki/Threat_model, 当然!)

例如,防御攻击者对您的应用程序进行逆向工程以恢复硬编码的 API 密钥的方法就是不拥有它们,这会使您的工作流程复杂化,并且可能需要对每个用户进行身份验证。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

安全发送 PHP 从 iOS 获取信息 的相关文章

  • 纯基于网络的版本控制系统

    我的托管服务当前不允许在其服务器上运行 允许 svn git cvs 我真的希望能够将我的开发计算机上的当前源代码与我的生产服务器 同步 我正在寻找一个纯php python ruby版本控制系统 不只是一个client对于版本控制系统 不
  • 显示和随机化 php 数组

    我有一个显示结果的数组 如下所示 Array 0 gt 71 1 gt 56 2 gt 64 3 gt 82 4 gt 90 5 gt 80 6 gt 65 7 gt 62 8 gt 14 9 gt 3 我的代码是 while row my
  • React Native:不透明视图内的透明视图

    我想用不透明框架和透明中心显示相机的视图 就像图片中的一样 黑色部分是相机的视图 我正在寻找具有纯反应本机组件的解决方案 没有额外的库 例如https github com gilbox react native masked view h
  • Laravel/00webhost 错误 404。在此服务器上找不到请求的 URL

    1 将我的文件上传到 000webhost 我将公用文件夹中的所有文件放置到公共 html然后我创建了一个名为laravel我在那里上传了所有其他文件 这是我的目录结构 laravel app 引导程序 config 公共 html 索引
  • CBPeripheral 名称有时为 null

    我正在开发一个应用程序来与蓝牙 LE 外围设备进行通信 我目前正在测试的外围设备是其中之一these http www ti com tool cc2540dk mini 有趣的是 有时当我发现它时 我会得到它的正确名称 SimpleBLE
  • 如何在 ios 7 上更改重新排序控制图像

    我正在寻找一种更改重新排序控件图像和大小的方法 我使用此代码来更改重新排序图像 void tableView UITableView tableView willDisplayCell UITableViewCell cell forRow
  • 如何自动缩放mapView以显示叠加层

    我可以在 mapView 上绘制多边形 但是我需要找到多边形并手动缩放它 有没有办法自动执行此过程 例如调整中心多边形 我浏览过互联网并阅读了一些相关文章 其中大多数都是基于折线和点的 任何形式的帮助将不胜感激 因为我正在寻找解决方案一段时
  • 多次添加同一个子视图来查看

    我不知道这是否可行 但我想做的是将子视图多次添加到视图中 我尝试过这样的事情 self view addSubview newView newView center CGPointMake 160 100 self view addSubv
  • 如何在php中使用一张图像绘制形状

    我需要使用图像的一部分来创建帧图像 例如 用户将从后端上传图像片段 现在我需要根据前端用户的要求在前端创建一个框架 用户将选择框架的高度和宽度 然后他将选择该图像片段 如下所示 我没有办法做到这一点 我尝试通过 css 和 html can
  • 如何防止 RealmSwift 列表中出现重复项?

    如何防止向列表中添加重复项RealmSwift 我有我的User作为领域对象 但真正的数据源是服务器 只是使用领域在本地缓存用户 当我从服务器获取当前用户数据时 我想确保存储在领域中的用户拥有来自服务器的所有播放列表 以及它们的曲目列表等
  • “同时创建 xib 文件”按钮已禁用

    我在创建时遇到这个问题UIView s子类 创建 例如 UIViewControllers or UITableViewCells没关系 为什么会出现这种情况 I create view using cmd N and Xcode Vers
  • 当我使用 session_start() 时,Xampp 7.0.1 Apache 崩溃

    当我在 PHP 中使用 session start 启动会话时 我的 Apache 服务器停止工作 我正在使用 Windows 版 Xampp 7 0 1 我的配置文件如下所示 即使我把它放在文件的第一行 它也不起作用 有人知道如何解决这个
  • php date_parse("2010 年 2 月") 给出日期 == 1

    当没有日期时 我将其称为 date parse 中的错误 d date parse Feb 2010 会给 d day 1 请参阅对此的评论date parse 手册页 http php net manual en function dat
  • 将带有地理位置数据的照片保存到照片库 Swift 3

    如何使用地理位置元数据将照片保存到照片库 我已请求 并允许 应用程序访问用户位置 private func allowAccessToUserLocation locationManager CLLocationManager locati
  • 图像目录中矢量 pdf 的渲染模式设置为模板,但 UIImageView 不会在自定义单元格中对图像进行着色

    我已将所有图像文件迁移到资产目录中 它们都是大小为 1x 的 pdf 向量 它们被设置为呈现为模板 它们的大小和颜色在任何地方都表现得很好 但是有一个来自 xib 的自定义 TableView Cell 我有 6 个 UIImageView
  • 为什么这评估为 true

    为什么这评估结果为真
  • 保护 APK 中的字符串

    我正在使用 Xamarin 的 Mono for Android 开发一个 Android 应用程序 我目前正在努力使用 Google Play API 添加应用内购买功能 为此 我需要从我的应用程序内向 Google 发送公共许可证密钥
  • 从 HTTPS 重定向到 HTTP 的安全问题?

    我在一些博客上读过 抱歉没有提及参考资料 但我找不到了 如果您将用户从 https 页面重定向到 http 页面 您将失去保护网站安全的所有工作 那么 有人可以向我解释一下在以下情况下我是对还是错 在登录页面上使用 https 然后使用 h
  • 使用 ImageMagick (PHP) 将 2 个图像并排合并为 1 个图像

    我认为这是一件容易的事 我有 2 张图片 JPG 我希望它们合并成一张图片 其中 2 张图片并排 所以我有图片 A 和图片 B 我想要图片 AB 并排 两个图像具有相同的宽度和高度 在本例中 宽度 200px 高度 300px 但是第二个图
  • 无法将 admob 与 firebase iOS/Android 项目链接

    我有两个帐户 A 和 B A 是在 Firebase 上托管 iOS Android unity 手机游戏的主帐户 B 用于将 admob 集成到 iOS Android 手机游戏中 我在尝试将 admob 分析链接到 Firebase 项

随机推荐

  • DQL 左连接 - sql 示例

    运行良好的 SQL 是 SELECT ro id role rr id role resource re id resource FROM resource re LEFT JOIN role resource rr ON rr resou
  • Google Maps API v3:是否有 setMap() 事件的回调或事件侦听器?

    我正在开发的网站上使用 Google Maps API v3 我的地图下方有一个下拉框 允许用户在地图上显示的不同标记组之间切换 每个标记都使用显示marker setMap 我的问题是地图有时需要很长时间才能显示新标记 尤其是在 IE 中
  • 在 CloudFormation 中为 AWS Load Balancer v2 配置连接耗尽

    这篇博文 https aws amazon com blogs aws elb connection draining remove instances from service with care 这里特别 https s3 amazon
  • 以编程方式获取私有 Vimeo 视频的 URL/嵌入代码

    我们一直是 Vimeo PRO 的长期用户 我们用它来托管在多个网站上显示的视频 这些视频被设置为私有 因此无法在 Vimeo 的公共部分找到它们 到目前为止 每当我们需要显示视频时 我们要么从 Vimeo 获取嵌入代码 要么复制 直接链接
  • 我如何检查我的 sqlite 表中是否有数据?

    编辑 根据下面的答案稍微更改了代码 但仍然无法正常工作 我还添加了一条日志消息来告诉我 getCount 是否返回 gt 0 确实如此 所以我怀疑我的查询可能有问题 或者我对光标的使用 我创建了一个表 我想检查它是否为空 如果它为空 我想运
  • MongoDB:使用 $ 位置运算符进行查询

    我有一个集合 其中的条目如下所示 userid 1 contents tag whatever value 100 tag whatever2 value 110 我希望能够查询该集合并仅返回数组的一部分 与查询匹配的部分 我正在尝试使用
  • 在 WooCommerce 中最后显示缺货产品 - 不包括延期交货

    请注意我的要求与其他类似问题的区别 此代码片段可将缺货商品保留在底部 在 Woocommerce 中最后显示缺货产品 https stackoverflow com questions 25113581 show out of stock
  • 当我将其设置为详细信息时,如何将图像添加到ListView?

    当我将其设置为详细信息时 如何将图像添加到 ListView 例如 ImageList imgList new ImageList imgList Images AddStrip bitmap this listView1 StateIma
  • 使用 OpenCv 检测 PC 上网络摄像头/摄像头的数量

    我正在制作一个运行多个网络摄像头 摄像机的应用程序 我无法检测到 OpenCV 拥有的网络摄像头数量 无法安排一个包含多个子网络摄像头的大显示窗口 有人可以帮我这个吗 我搜索过 openCV willowgarage 但失败了 thanks
  • Python线程传递参数

    我正在尝试将一些参数传递给服务器 但我不知道如何 这是我的代码 HOST PORT socket gethostbyname socket gethostname 31000 self server SocketServer Threadi
  • 通过html链接删除Django中的对象

    我有一个带有 Post 模型的项目 这是基本的帖子 我想在每个帖子页面上创建一个链接 以便能够删除该帖子 具有适当的安全性 关于堆栈溢出有一些问题 但我似乎找不到一个完整的 可行的答案 我使用的是 Django 1 7 当我实现它时不会抛出
  • 使用参数化类型重载方法

    只是想知道是否有一种方法可以使用参数化类型调用重载方法 例如定义以下对象 object Wrap def f x X println x called def f y Y println y called def f a Any print
  • 列出所有 PaperTrail 版本(包括关联)的最有效方法是什么?

    这个问题是关于宝石的纸迹 https github com airblade paper trail对于轨道 当仅关联发生变化时 不会为主模型创建版本记录 因此 列出某个记录 包括其关联 的所有版本的最有效方法是什么 查询应该类似于以下内容
  • 是否有 ruby​​ 一行“return if x”?

    有很多地方需要补充 if this flag return end 可以用 ruby 一行完成吗 有没有红宝石单线 return if x Yes return value if condition 我爱鲁比
  • 无法包含用于客户端幻灯片验证的 js 文件

    我安装了gem client side validations 运行bundle并运行rails g client side validations install 安装没有创建任何 js 文件 因此我创建了它们并将 HitHub 中的代码
  • 为什么 Android FireMonkey 应用程序中的控件不能跨越多列或多行?

    我有一个带有 GridPanelLayout 的 FireMonkey 应用程序 与客户端对齐 它有 6 列和 16 行 控件包括字形 编辑和按钮 TEdit 跨越多列 TButton 跨越多列和行 目前 控件全部与客户端对齐 当我在 Wi
  • 如何使用MAIL_FROM_ADDRESS?

    目前 我正在开发一项功能 要求应用程序向客户 用户发送电子邮件 发送电子邮件已经可以正常工作 但是 我希望隐藏 替换发件人的电子邮件 我以为MAIL FROM ADDRESS in env文件是我所需要的 但它没有给我我所期望的 这是我的
  • Uploadify 插件不调用 Java Servlet

    我刚刚开始使用 Uploadify flash 插件而不是标准 HTML UI 并遇到了下一个问题 当我单击 上传文件 链接时 会显示进度并出现 已完成 状态 但实际上 它没有发生任何事情 Java Servlet 不是从后端调用的 有上传
  • 将 UIButton 的背景颜色从白色动画变为红色

    我正在尝试制作一种颜色脉冲效果来动画背景颜色UIButton使其连续从一种颜色 白色 变为另一种颜色 红色 我正在尝试使用CABasicAnimation用于更改不透明度 但我也无法使其与颜色一起使用 CABasicAnimation th
  • 安全发送 PHP 从 iOS 获取信息

    情况是这样的 我有一个 iOS 应用程序 其中有一部分用户将信息输入到特定标签中 然后我根据用户给定的信息创建一个 URL 请求 并将其发送到我的 PHP 后端 URL 遵循以下结构 http www somewebsite com sen