APP与web服务端接口Token验证上的一个疑问?
如果我通过抓包得到了api_token,user_token等等所有参数以及header,那在短时间内,我直接带上我获取到的参数,验证规则一样通过, 我不就可以用这个接口了? 个人能想到的办法就是把token验证的时间弄短一点。 不知道大神们是怎么解决这个问题的?
回复内容:
token就是起这个作用的啊……不就是为了让你能用才设计的token么。设计token的主要目的是不希望长时间保存用户的用户名和密码,所以转换成一个随机码,这个码本身就有替代用户名和密码的作用,所以一旦泄露了,自然后果也会很严重。现在安全级别高的API一般都只能使用HTTPS,这样从路径中间是抓不到连接上的内容的,所以不会把token泄露给其他人。至于两头, 一头本来就是用户,一头是你自己的服务器,这个token本来就是应该在两边共享的内容吧。
以前有另一种设计是使用api_key和secret_key两个值,其中api_key在HTTP当中明文传输,而secret_key不出现在HTTP明文中,而是作为MD5 Hash的一部分参与进来,一般将整个URL参数正规化(按参数名排序,统一转换成小写,正确进行URL编码),然后加上secret_key,计算MD5,然后把MD5作为一个附加的sig参数通过HTTP传递,这样即使中间抓到包,也只能看到api_key,看不到secret_key,就无法自由使用这个接口。但这个设计对于重放是有弱点的,虽然我不能自由地重新组合参数,但是我可以重新使用之前抓到的参数,这仍然是不安全的;而且,缺乏一个将secret_key安全分发到终端的手段。所以其实还是直接使用HTTPS比较有效。
作为参考我们来看一下OAuth 2.0的设计,OAuth 2.0是第三方登录,涉及到用户、认证中心、第三方应用三方面的关系,它遇到的问题就要更复杂一些,我们可以看它如何获取token,并且防止token被泄露给不应当泄露的一方:
- OAuth服务器与第三方服务器同时知道相同的api_key, secret_key
- 用户与第三方服务器同时知道api_key(通常是由第三方应用或者Web网页携带的)
- 用户与OAuth服务器同时知道相同的用户名密码,第三方应用不知道
- 用户申请第三方登录时,使用api_key调用OAuth服务器登录接口(一般由第三方应用引导),使用OAuth服务器的页面输入用户名密码,OAuth服务器返回auth_code,这可以看作一个临时的token。这一步必须使用https,保证用户名和密码不被窃取。
- 用户使用auth_code调用第三方应用的接口(通常由callback机制自动完成),这一步可以使用HTTP,所以auth_code可能会泄露
- 第三方应用使用auth_code + api_key + secret_key调用OAuth服务器的第二步登录接口,获取access_token,也就是正式的token。虽然auth_code可能泄露,但是由于secret_key攻击者无法获得,也就无法利用auth_code来换取token。这一步必须使用HTTPS,保证secret_key不泄露。
至此,第三方应用成功获取到了access_token,而这个access_token只在OAuth服务器和第三方服务器之间共享,不会泄露给包括用户在内的第三方。可见这个过程中主要是依赖HTTPS的加密特性来保证最重要数据(用户名、密码、secret_key)不被泄露。此外,不同安全级别的token应该有不同的超时时间,比如auth_code超时时间非常短,而access_token有相对长的超时时间。
接口用https, 抓包都是乱码。但是也有伪装中间人的方法? 谢邀……最极端的办法:
每个token只一次有效……
当然,这涉及到大量的读写操作。
SO……一般不这么搞…… 随机数加token加时间戳进行md5签名 把签名和随机数 时间戳一起传给服务器 不是这样子的,在服务器端先要判断session,通过之后才会进入到我们写的token验证中。 1:https;
2:认证模块独立,token入session,再次校验,这个和认证的设计有关系;
3:高频率更换token,具体看业务重要性;
以上个人看法,可能不太严谨

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제









유효하지 않은 로그인 토큰에 대한 해결 방법에는 토큰 만료 여부 확인, 토큰이 올바른지 확인, 토큰 변조 여부 확인, 토큰이 사용자와 일치하는지 확인, 캐시 또는 쿠키 지우기, 네트워크 연결 및 서버 상태 확인이 포함됩니다. , 다시 로그인하거나 새로운 토큰을 요청하려면 기술 지원팀이나 개발자에게 문의하세요. 자세한 소개: 1. 토큰이 만료되었는지 확인하세요. 일반적으로 로그인 토큰에는 유효 기간이 설정되어 있습니다. 유효 기간이 초과되면 유효하지 않은 것으로 간주됩니다.

유효하지 않은 로그인 토큰 문제는 네트워크 연결 확인, 토큰 유효 기간 확인, 캐시 및 쿠키 삭제, 로그인 상태 확인, 애플리케이션 개발자 문의 및 계정 보안 강화를 통해 해결할 수 있습니다. 자세한 소개: 1. 네트워크 연결을 확인하고 네트워크에 다시 연결하거나 네트워크 환경을 변경합니다. 2. 토큰 유효 기간을 확인하고 새 토큰을 얻거나 애플리케이션 개발자에게 문의합니다. 3. 캐시 및 쿠키를 지우고 브라우저를 지웁니다. 캐시 및 쿠키를 확인한 후 다시 애플리케이션에 로그인하세요. 4. 로그인 상태를 확인하세요.

PHP 프로젝트에서 API 인터페이스를 호출하여 데이터를 크롤링하고 처리하는 방법은 무엇입니까? 1. 소개 PHP 프로젝트에서는 종종 다른 웹사이트에서 데이터를 크롤링하고 이러한 데이터를 처리해야 합니다. 많은 웹사이트에서는 API 인터페이스를 제공하며, 우리는 이러한 인터페이스를 호출하여 데이터를 얻을 수 있습니다. 이 기사에서는 PHP를 사용하여 API 인터페이스를 호출하여 데이터를 크롤링하고 처리하는 방법을 소개합니다. 2. API 인터페이스의 URL과 매개변수를 얻으십시오. 시작하기 전에 대상 API 인터페이스의 URL과 필수 매개변수를 얻어야 합니다.

ReactAPI 호출 가이드: 백엔드 API와 상호 작용하고 데이터를 전송하는 방법 개요: 최신 웹 개발에서는 백엔드 API와 상호 작용하고 데이터를 전송하는 것이 일반적인 요구 사항입니다. 널리 사용되는 프런트엔드 프레임워크인 React는 이 프로세스를 단순화하는 몇 가지 강력한 도구와 기능을 제공합니다. 이 기사에서는 React를 사용하여 기본 GET 및 POST 요청을 포함하여 백엔드 API를 호출하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 필요한 종속성을 설치하십시오. 먼저 Axi가 프로젝트에 설치되어 있는지 확인하십시오.

토큰은 가상 화폐의 일종으로, 사용자 권한을 표시하고 거래 정보를 기록하며 가상 화폐를 지불하는 데 사용되는 디지털 화폐입니다. 토큰은 특정 네트워크에서 거래를 수행하는 데 사용될 수 있고, 특정 가상 화폐를 사고 파는 데 사용될 수 있으며, 특정 서비스에 대한 비용을 지불하는 데에도 사용될 수 있습니다.

Oracle은 세계적으로 유명한 데이터베이스 관리 시스템 제공업체이며, Oracle의 API(응용 프로그래밍 인터페이스)는 개발자가 Oracle 데이터베이스와 쉽게 상호 작용하고 통합하는 데 도움이 되는 강력한 도구입니다. 이 기사에서는 Oracle API 사용 가이드를 자세히 살펴보고 독자들에게 개발 프로세스 중에 데이터 인터페이스 기술을 활용하는 방법을 보여주고 구체적인 코드 예제를 제공합니다. 1.오라클

C++ 구문 오류: 'expectedprimary-expressionbefore':'token'을 해결하는 방법은 무엇입니까? 구문 오류는 C++ 프로그래밍에서 흔히 발생하는 문제입니다. 일반적인 오류 중 하나는 "expectedprimary-expressionbefore':'token" 오류 메시지입니다. 이 오류는 일반적으로 조건식과 삼항 연산자를 사용할 때 발생합니다. 이 기사에서는 이 오류의 원인을 소개합니다.

데이터 기반 애플리케이션 및 분석 세계에서 API(애플리케이션 프로그래밍 인터페이스)는 다양한 소스에서 데이터를 검색하는 데 중요한 역할을 합니다. API 데이터로 작업할 때 액세스하고 조작하기 쉬운 형식으로 데이터를 저장해야 하는 경우가 많습니다. 그러한 형식 중 하나는 표 형식의 데이터를 효율적으로 구성하고 저장할 수 있는 CSV(쉼표로 구분된 값)입니다. 이 기사에서는 강력한 프로그래밍 언어인 Python을 사용하여 API 데이터를 CSV 형식으로 저장하는 프로세스를 살펴봅니다. 이 가이드에 설명된 단계를 수행하여 API에서 데이터를 검색하고, 관련 정보를 추출하고, 추가 분석 및 처리를 위해 CSV 파일에 저장하는 방법을 알아봅니다. Python을 사용한 API 데이터 처리의 세계에 대해 알아보고 CSV 형식의 잠재력을 활용해 보겠습니다.
