1k-ct / amble Goto Github PK
View Code? Open in Web Editor NEWsome golang packages
License: MIT License
some golang packages
License: MIT License
アクセストークンとリフレッシュトークンには同じUUIDが使用されています。これはトークンの改ざんまたは再利用のリスクを高める可能性があります。アクセストークンとリフレッシュトークンには異なるUUIDを使用することが推奨されます。
リフレッシュトークンの有効期限が1週間に設定されています。これはセキュリティ上のリスクを高める可能性があります。攻撃者がリフレッシュトークンを盗み出し、1週間間隔で再発行できます。有効期限はできるだけ短く設定することが推奨されます。
アクセストークンの秘密鍵とリフレッシュトークンの秘密鍵は同じ鍵が使用されています。これは、秘密鍵が漏洩した場合にアクセストークンとリフレッシュトークンの両方が脆弱になる可能性があります。これらのトークンには異なる秘密鍵を使用することが推奨されます。
アクセストークンとリフレッシュトークンの有効期限はハードコードされています。セキュリティ上のリスクを軽減するために、これらの値を設定ファイルや環境変数などの外部設定で設定することが推奨されます。
アクセストークンの有効期限が比較的長く設定されています。この期間中にアクセストークンが盗まれた場合、攻撃者は長期間アクセスを維持できます。アクセストークンの有効期限を短くすることが推奨されます。
JWTの署名アルゴリズムとしてHS256が使用されています。このアルゴリズムは、秘密鍵が漏洩した場合にトークンの改ざんを容易にする可能性があるため、脆弱性が指摘されています。より強力な署名アルゴリズム(たとえば、RS256)を使用することが推奨されます。
ExtractToken関数でBearerトークンが正しく解析されない場合、空の文字列が返されます。これは、アクセストークンの有効性をチェックする際に、無効なトー
JWTトークンの検証時に、署名アルゴリズムがHS256であることを確認していません。これにより、HS256以外のアルゴリズムで署名されたトークンを受け付ける可能性があります。
リフレッシュトークンは、AccessDetailsによって管理されたり、データベースに保存されたりしないため、悪意のある攻撃者によって使用される可能性があります。
アクセストークンの有効期限が30分、リフレッシュトークンの有効期限が1週間と非常に長く、トークンを盗まれた場合、攻撃者は長期間にわたってそのトークンを使用できる可能性があります。また、トークンの有効期限を更新するためのメカニズムが提供されていないため、新しいトークンを生成するためにログアウトする必要があります。
JWTトークンは、署名される前に検証する必要があります。しかし、このコードでは、検証される前にJWTトークンが作成されます。
TokenValid()関数は、クライアントのトークンを検証するために使用されます。ただし、この関数は、トークンが正しい形式であることを確認するだけで、トークンが実際に誰かによって署名され、検証されたことを確認していません。このため、この関数を使用して、攻撃者が偽のトークンを送信し、クライアントが検証する前に処理することができる可能性があります。
AccessDetailsとTokenDetailsのデータフィールドはpublicであるため、外部からアクセスできます。しかし、これらのデータはセキュリティ上の理由からプライベートであるべきです。
CreateToken()関数は、秘密鍵として渡された文字列をそのまま使用しています。しかし、これは秘密鍵を保存するための推奨される方法ではありません。秘密鍵は、環境変数などの安全な方法で保存する必要があります。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.