タグ

HTTPに関するYassLabのブックマーク (8)

  • 危険なCookieのキャッシュとRailsの脆弱性CVE-2024-26144 | セキュリティブログ | 脆弱性診断(セキュリティ診断)のGMOサイバーセキュリティ byイエラエ

    高度診断部アプリケーションセキュリティ課の山崎です。 弊社エンジニアの名古屋と山崎がRuby on RailsのActive Storageの脆弱性CVE-2024-26144を報告しました。 脆弱性はRailsの5.2.0から7.1.0のバージョンに影響するもので、お使いのRailsのバージョンが最新でない場合にはアップデートを推奨します。 記事では脆弱性の注意点と、関連してCookieのキャッシュに関する調査内容を紹介します。 TL;DR ・ Set-Cookieヘッダがキャッシュされると別人ログイン問題が発生する ・ RailsのActive StorageでSet-Cookieヘッダがキャッシュ可能な設定であった(CVE-2024-26144) ・ Nginx(+ Passenger), Apache(+ mod_cache)等のキャッシュ機構と合わせて利用すると実際に事故が

    危険なCookieのキャッシュとRailsの脆弱性CVE-2024-26144 | セキュリティブログ | 脆弱性診断(セキュリティ診断)のGMOサイバーセキュリティ byイエラエ
    YassLab
    YassLab 2024/07/10
    “CDN等を用いてHTTPレスポンスをキャッシュ / キャッシュ制御を行う Cache-Control ヘッダに設定不備があると、本来キャッシュすべきでないユーザ情報をキャッシュしてしまい、他のユーザから見えてしまう事故が発生する”
  • 【Rails】render と redirect_to の違いまとめ🔰

    はじめに こんにちは、Takeです。都内でエンジニアとして活動しています。 この記事では、render と redirect_to の違いを調査し、体系的に整理しました。また、これらのメソッドが頻繁に使用されるFlashメッセージにおける Flash と Flash.now の違いについても言及していますので、ぜひご一読いただければ幸いです。 render とは何か? 機能 renderメソッドは現在のリクエストのコンテキスト内でビューテンプレートを直接呼び出す。これにより、新しいHTTPリクエストを発生させずに、サーバーは指定されたビューをクライアントに直接返す。このメソッドは主にフォームのバリデーションエラーが発生した時など、同一ページを再表示する場面で利用される。 図解 サンプルコード def create @user = User.new(user_params) if @user

    【Rails】render と redirect_to の違いまとめ🔰
    YassLab
    YassLab 2024/05/04
    “この記事では、render と redirect_to の違いを調査し、体系的に整理しました。また、これらのメソッドが頻繁に使用されるFlashメッセージにおける Flash と Flash.now の違いについても言及しています”
  • 他人のCookieを操作する - T.Teradaの日記

    脆弱性検査をしていてしばしば出くわすのは、他人のCookieの値を操作できるとXSSやセッション固定等の攻撃が成功するようなWebアプリケーションです。 このようなアプリがあると、業界的には「Cookie Monsterという問題がありまして、、、でも、、、基的に現状のブラウザではリスクは低いです」みたいな話がされることが多いのではないかと思います。 日の日記では、それ(Cookie Monster)以外にも状況によっては考慮すべきことがある、という話をしたいと思います(過去の日記でも少し書いた話ですが、もう少しちゃんと書いておこうと思います)。 通信経路上に攻撃者がいる 被害者のブラウザとサーバの通信経路上に、アクティブな攻撃者がいると想定しましょう。 そのような状況では、攻撃者は正規のサーバになりかわってブラウザと通信をしたり、ブラウザと正規のサーバで交わされる通信に介入することが

    他人のCookieを操作する - T.Teradaの日記
    YassLab
    YassLab 2024/04/29
    "通信経路に攻撃者がいてもセキュアであるべきサイト(HTTPSのサイト)については「他人のCookieは操作できない」という前提でセキュリティを考えることはできない / HTTPの通信に介入できる攻撃者はCookieを操作できるから"
  • turboからのリクエストに対してリダイレクトするときに気をつけること - おもしろwebサービス開発日記チラシの裏

    turboを利用していて、destroyアクションでリダイレクトを使うときステータスコードを明示的に303(see other)にしないと、リダイレクト先にDELETEメソッドでアクセスしてしまうというハマりポイントが有る 参考: Rails 7.0 + Ruby 3.1でゼロからアプリを作ってみたときにハマったところあれこれ #Ruby - Qiita 上記の例ではDELETEメソッドを利用しているけど、PATCH(PUT)でも同じ挙動になる Railsの現時点でのデフォルトのリダイレクト時は302なので、redirect_to @project, status: :see_otherのように明示的にステータスコードを指定するとGETでリダイレクトする なぜこのような仕様になっているかというと、fetch APIがそういう仕様だから fetch APIがなぜこのような仕様になっているかと

    turboからのリクエストに対してリダイレクトするときに気をつけること - おもしろwebサービス開発日記チラシの裏
    YassLab
    YassLab 2023/11/29
    "Railsの現時点でのデフォルトのリダイレクト時は302 / redirect_to @project, status: :see_otherのように明示的にステータスコードを指定するとGETでリダイレクト / なぜこの仕様になっているかというとfetch APIがそういう仕様だから"
  • HTTP Routing | Heroku Dev Center

    The Heroku platform automatically routes HTTP requests sent to your app’s hostname(s) to your web dynos. There are different routers used for different runtimes. The Common Runtime has a Legacy Router and a Router 2.0 option. The legacy router is deprecated and staged for EOL in Spring 2025. This article provides a detailed reference of how the routers behave, and how they conform to the HTTP spec

    HTTP Routing | Heroku Dev Center
    YassLab
    YassLab 2023/09/30
    “Heroku’s new Common Runtime router, Router 2.0, gives customers an early opportunity to experiment and provide feedback to shape the future of our networking product. / To opt into using the new router, enable the labs feature: $ heroku labs:enable http-routing-2-dot-0 -a <app name>”
  • RESTful APIのURI設計(エンドポイント設計) - Qiita

    HTTPメソッドとURI HTTPメソッドとエンドポイントは切っても切れない関係にある。URIがリソースを表すものだとすると、HTTPメソッドは操作(何をするか)を表すものである。1つのURIのエンドポイントに異なるメソッドでアクセスすることで、情報を取得するだけでなく情報を変更したり、削除したり等のさまざまな操作を行うようにすることで、リソースとそれをどう扱うかをきちんと分離して扱うことができる。これはHTTPメソッドの来の考え方に合致しており、Web APIではこの考え方に沿って設計を行うことが主流となっている。各HTTPメソッドについては以下を参照。 リソース指向アーキテクチャの統一インターフェース URI設計 リソースにアクセスするためのURI設計の注意点 1.複数形の名詞を利用する 基的にリソースは「集合」を表すものであるため、複数形の方が適切である。また、HTTPのURIは

    RESTful APIのURI設計(エンドポイント設計) - Qiita
    YassLab
    YassLab 2023/08/25
    "ただ、URI中のドメイン名はハイフンは許可されているがアンダースコアは使えないため、迷ったらドメイン名と同じルールでURI全体を統一するためハイフンでつなげるのが望ましい / users/profileのように区切る方が望ましい"
  • GitHub Actionsをcurlを使って外部から実行する - nwtgck / Ryo Ota

    ここではHTTPのリクエストで外部から実行する。HTTPのリクエストで実行できるため様々な場所から利用できる可能性があると思う。

    GitHub Actionsをcurlを使って外部から実行する - nwtgck / Ryo Ota
    YassLab
    YassLab 2023/03/04
    "個人的には `workflow_dispatch` の良さはHTTPリクエストでも手動でもトリガーできる点 / 類似のイベントとして `repository_dispatch` がある。 https://docs.github.com/en/actions/reference/events-that-trigger-workflows#repository_dispatch "
  • curl-to-ruby: Convert curl commands to ruby's net/http

    Instantly convert curl commands to Ruby's net/http Ruby's net/http is notorious for not having the friendliest API, but it isn't all that bad. Ruby has great gems like faraday, but in libraries and small utilities it's better to kill your dependencies and use what the stdlib provides. This tool turns a curl command into ruby (2.0+) code using net/http. Currently, it knows the following options: -d

    YassLab
    YassLab 2022/12/01
    "Ruby's net/http is notorious for not having the friendliest API, but it isn't all that bad. Ruby has great gems like faraday, but in libraries and small utilities it's better to kill your dependencies and use what the stdlib provides. This tool turns a curl command into Ruby code using net/http."
  • 1