HTTP request smuggling

HTTP request smuggling is a technique for interfering with the way a web site processes sequences of HTTP requests that are received from one or more users. Request smuggling vulnerabilities are often critical in nature, allowing an attacker to bypass security controls, gain unauthorized access to sensitive data, and directly compromise other application users.

What is HTTP request smuggling? Tutorial & Examples | Web Security Academy

様々なサイバー攻撃に繋がる脆弱性 HTTP リクエストスマグリング | yamory Blog

解釈の違いを引き起こす例のひとつに、Content-Length ヘッダーと Transfer-Encoding ヘッダーの両方を持つリクエストがあります。

POST / HTTP/1.1
Host: example.com
Content-Length: 44
Transfer-Encoding: chunked

0

GET / HTTP/1.1
Host: attacker.com
X:

上記のようなリクエストを攻撃者が送り、フロントエンドのサーバーが Content-Length の方を解釈してそのままリクエストを送り、バックエンドのサーバーは Transfer-Encoding を解釈して以下のような 2 つのリクエストとして認識した場合、HTTP リクエストスマグリングの脆弱性を受け、悪意のある attacker.com のようなサイトへ誘導される可能性があります。

POST / HTTP/1.1
Host: example.com
Content-Length: 44
Transfer-Encoding: chunked

0

GET / HTTP/1.1
Host: attacker.com
X:

CVE-2020-25613 Ruby WEBrick

HAProxy では Content-Length を使って解釈し、WEBrick では Transfer-Encoding を使って解釈することで WEBrick 側では 2 つのリクエストと認識してしまいます。

この問題の修正として以下のように正規表現をより厳格なものへと変更しています。

when /\Achunked\z/io then read_chunked(socket, block)

Improving Scroll Performance with Passive Event Listeners

envet.preventDefault よりは passive event listener が最近のナウい実装っぽいという話

解説記事はこちらを参照されたし。

Passive Event Listeners によるスクロールの改善 | blog.jxck.io

view_context

An instance of a view class. The default view class is ActionView::Base.

ActionView::Rendering | RailsDoc(β)

主なユースケースとしては controller から helper method を callするケースかな。

view_context.helper_method

コントローラーからヘルパーメソッドを呼ぶ - Qiita