我正在创建一个社交应用程序,我想知道如何保护它的方式,如果有人,不知何故,获取我发送到服务器的参数不会搞砸我的数据库中的所有内容,即只需向具有正确参数的服务器发送请求,即可在数据库中更改和插入数据 我将首先创建Web和移动版本,并通过实施HTTPS保护从客户端到服务器的通信。但是,问题是你仍然可以通过使用像MiTM一样的代理来获取参数,就像Charles Proxy那样。 将TOTP作为另一个参数来完成工作,还是应该使用某种身份验证? 为了记录,我在服务器端使用PHP而在Android上使用Java作为Android应用程序,我将首先创建它。然后,我将在稍后创建Windows Phone和iOS应用程序 谢谢!
修改
我并没有试图阻止MiT,正如你们中的一些人所提到的那样
我知道我无法隐藏客户端中发送到服务器的参数,我也没有试图阻止它。
我想要防止的是以下几点:
我们假设应用程序发送以下字符串查询:
uid=75&deactivate=1
到以下文件:
https://www.example.com/users.php
我不希望有人做一个简单的循环并使用用户ID向服务器发送请求。它甚至不必是一个循环。每个人都可以停用随机人的帐户。或者可以通过在查询字符串中放入正确的参数来更改其信息
这件事需要有某种保护。我认为这可以通过添加另一个参数来解决,只有应用程序和服务器才知道它是有效的并且将作为某种身份验证。
解决这个问题的正确方法是什么?!
答案 0 :(得分:2)
听起来你正试图解决错误的问题。
但是,问题是你仍然可以通过使用像MiTM一样的代理来获取参数,就像Charles Proxy那样。
如果您的威胁模型是“用户可能容易受到MitM攻击”,您可以选择:
如果您的威胁模型是“有人可能会尝试使用MitM代理来篡改其出站请求”,请不要试图阻止它。相反,验证您的输入。
推荐阅读: