springboot-security

Solid

Spring Security best practices for authn/authz, validation, CSRF, secrets, headers, rate limiting, and dependency security in Java Spring Boot services.

AI & Automation 196,640 stars 30253 forks Updated 2 days ago MIT

Install

View on GitHub

Quality Score: 93/100

Stars 20%
100
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Spring Boot セキュリティレビュー 認証の追加、入力処理、エンドポイント作成、またはシークレット処理時に使用します。 ## 認証 - ステートレスJWTまたは失効リスト付き不透明トークンを優先 - セッションには `httpOnly`、`Secure`、`SameSite=Strict` クッキーを使用 - `OncePerRequestFilter` またはリソースサーバーでトークンを検証 ```java @Component public class JwtAuthFilter extends OncePerRequestFilter { private final JwtService jwtService; public JwtAuthFilter(JwtService jwtService) { this.jwtService = jwtService; } @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException { String header = request.getHeader(HttpHeaders.AUTHORIZATION); if (header != null && header.startsWith("Bearer ")) { String token = header.substring(7); Authentication auth = jwtService.authenticate(token); SecurityContextHolder.getContext().setAuthentication(auth); } chain.doFilter(request, response); } } ``` ## 認可 - メソッドセキュリティを有効化: `@EnableMethodSecurity` - `@PreAuthorize("hasRole('ADMIN')")` または `@PreAuthorize("@authz.canEdit(#id)")` を使用 - デフォルトで拒否し、必要なスコープのみ公開 ## 入力検証 - `@Valid` を使用してコントローラーでBean Validationを使用 - DTOに制約を適用: `@NotBlank`、`@Email`、`@Size`、カスタムバリデーター - レンダリング前にホワイトリストでHTMLをサニタイズ ## SQLインジェクション防止 - Spring Dataリポジトリまたはパラメータ化クエリを使用 - ネイティブクエリには `:param` バインディングを使用し、文字列を連結しない ## CSRF保護 - ブラウザセッションアプリの場合はCSRFを有効にし、フォーム/ヘッダーにトークンを含める - Bearerトークンを使用する純粋なAPIの場合は、CSRFを無効にしてステートレス認証に依存 ```java http .csrf(csrf -> csrf.disable()) .sessionManagement(sm ->...

Details

Author
affaan-m
Repository
affaan-m/everything-claude-code
Created
4 months ago
Last Updated
2 days ago
Language
JavaScript
License
MIT

Integrates with

Related Skills