HN 日本語サマリー

← 一覧へ戻る
Web開発

RedditはプレーンHTMLを安全でないと判断した

So Reddit has decided that plain HTML is unsafe (cole-k.com)

544 pointsby montroser545 コメント

要約

Redditは、古いフロントエンド(old.reddit.com)を廃止し、ログイン必須化することで、スクレイピング対策を強化しました。著者は、この措置がコミュニティの価値を搾取する目的であり、セキュリティ上の主張は口実だと批判しています。新フロントエンドはJavaScriptへの依存度が高く、より多くのリソースを必要とします。

全文翻訳

Reddit-The-Company もしRedditを知らないなら、それは基本的に多くの人気フォーラムのホストです。そして、猫のために来て、共感のために留まることを奨励するあらゆる企業のように、Redditはそれらを完全に破壊することなく、それらのフォーラムから最大限の価値を引き出すビジネスに携わっているようです。結局のところ、単にコミュニティを育むことは、ニューテックにとって十分に高貴な目標ではなく、Redditにとって幸いなことに、本物の人間が生成したデータはLLM時代においてまさに金なのです。彼らがコミュニティから比喩的な肝臓を摘み取ると決めた最後の時について読むことを歓迎します。 Reddit-The-Search-Results 私はもはやRedditに関わりたくありませんが、特にLLM時代においては、時々訪れます。なぜなら、検索クエリにsite: reddit.com を追加することは、基本的に本物の人間によって書かれた結果を見つける確実な方法だからです。これは、非常に明確にするために、私がまだ望ましいと感じるものです。 今やログインの後ろに… sort of 昨日そのようなクエリを実行した後、私の絶対的な喜びのために、私は「おそらくこれが私を年寄りだと感じさせるのだろうが、私はRedditのオリジナルのフロントエンド、old.reddit.comを使っている」というメッセージに迎えられました。それが単なるデザインであることについて説教しないように本当に頑張りますが、それが全てです!Redditのデザインです。見てください、私は自分が少数派ユーザーであることを知っています。私はFirefoxを使います。私はnoscriptを使います!私は、誰かがまだそれを使っている二人だけをサポートしなくなったために、うまく機能していた製品から強制的に追い出されることに慣れています。それは私の8年間使っている電話にも起こりました。それは今でもうまく動きますが、OSが古すぎます。その小さな栄光の中で安らかに眠れますように。それは私の10年間使っているタブレットにも起こりました。それは私の電話よりもさらにうまく動き、同じ理由でバッテリーの持ちも素晴らしいです。それは、アプリストアから長らく削除された古いアプリの私のコピーが使用していたStack ExchangeのAPIにも起こりました。これが私を最も傷つけました。 ここで個人的な感情が入ってくるのは、Redditがこれをすべて「Redditを安全に保つため」と言っていることです。誰からRedditを安全に保つのでしょうか?私から?私の知識欲から??安全とは一体何なのでしょうか? そこで、彼らがこの件について何を言っているのか、発表を見てみましょう。もちろん、私はRedditをもう読まないので、それを見ませんでした:https://old.reddit.com/r/modnews/comments/1ujtebf/logging_in_to_use_old_reddit/。 ログインしていることを願っています。 Old Redditのログアウト時の体験は、プラットフォーム上の悪意のあるスクレイピングや自動トラフィックの重要な情報源です。 ふむ、OK。しかし、なぜNew Redditはログアウトしたままでもアクセスできるのでしょうか?ああ、誰かがそれを尋ねました。 [質問]:新しいRedditは、人々がそれをスクレイピングしようとしないほど何が違うのですか?古いRedditにもそれを実装する方が良いように思えます。それに、これは人々が新しいRedditをスクレイピングしようとする原因になるだけではありませんか? [管理者返信]:返信を書こうとしていたのですが、ちょうどu/Nestramutat-さんが別のコメントで非常に雄弁な回答をされているのを見ました! [コメント(省略)]:…最初の質問についてですが、悪意のあるトラフィックの形状は常に変化しています。1つの方法を禁止すると、新しい方法が開発されるという、絶え間ない猫とネズミのゲームになります。事後には悪意のあるトラフィックを簡単に見つけることができますが、それを事前にブロックするのはより困難です。彼らが古いRedditには最新のセキュリティスタックがないと主張していることを考えると、これはおそらくさらに大きな課題となっているでしょう… それは「最新のセキュリティスタック」を持っていないのです。私はフルスタックの資格を本当に獲得していないかもしれませんが、右クリックして「要素を検証」を選択できるので、その理由を見るには十分資格があると言えるでしょう。 Old versus New Old Reddit まずは、不本意ながらログインして、old.reddit.comの何がそんなに安全でないのかを見てみましょう。彼らの発表スレッドをテストに使います。 ああ、ずっといい感じです。古いRedditがなぜそんなに安全でないのかを見てみましょう。私が推測できる最善のことは、彼らの貴重な、貴重なユーザー作成コンテンツがプレーンHTMLで利用可能であるということです。なぜなら、それが基本的に古いRedditの全てだからです。コメントをさらに読み込む(私がどのように知っているか尋ねてください)以外は、JSさえ必要ありません。約1メガバイトをダウンロードし、約0.5メガバイトを送信します。そこには表示されていませんが、ページのHTML自体が応答の大部分を占めています。私は確かにこれより悪いものを見たことがありますが、ロード時間はどうでしょうか?GitHubはその巨大なペイロードを(サイズに対して)約4倍速くロードします。ああ…応答を待つのに丸々2秒。レート制限の匂いがします。それともRedditはいつもこんなに遅かったのでしょうか? さらにコメントを読み込んでみましょう。(Redditは最初に全てのコメントを読み込みません) それはなかなか軽量で、素早かったですね。私の秘密が盗み見られているようには見えません。私が得たのは、古いRedditはかなり普通のウェブページであるということです。これは、…新しいRedditと比較すると安全でないと言えるでしょう。 New Reddit 新しいRedditがなぜそんなに優れているのか見てみましょう。非現実的な期待を抱かないように、それを正します: 新しいRedditは、JavaScript(JS)なしでは、投稿自体以上のものは何もロードしません。おそらくそれがより安全にしているのでしょう。 ここにロードされるものはたくさんあります(古いRedditの約5倍)。そして、これが私の分析が科学的でなくなる理由です。私は「セキュリティ上の問題」(それが何を意味するにせよ)を回避しようとするのではなく、コンテンツを取得するために必要な最小限のことだけを試みました。ブラウザ内で — スクレイパーを書く気にはなりませんでした。 これにより、www.redditstatic.com/js/concat、www.reddit.com/svc/shreddit/more-comments/、www.reddit.com/svc/shreddit/comment/を除くドメイン(reddit.comを含む)への全ての要求をブロックすることになりました。 これをすると、ページははるかに少なくロードされますが、ロードはされます。さらにコメントを読み込むためにクリックすると、永遠に回転しますが、私は発火した要求を検査し、コメントテキストを含む応答を取得しました。だから、私が把握できる限りでは、ページ上でJSを実行するだけで、コメントを取得するのに十分な情報が得られるようです。だから、それがスクレイパーを止めているのだと思いますか?JavaScriptを実行すること? ただの面白半分に、要求フィルターなしでさらにコメントを読み込んでみましょう。 さて、それは古いRedditよりも確かに軽量ではありません。 私の(再び、非科学的な)実験では、ページを数回リロードし、コメントと返信を読み込もうとしましたが、失敗はありませんでした。 一度、要求フィルターをオフにしていたとき、リダイレクトされ、キャプチャフィールドがクエリパラメータとして送信されているのを見ましたが、それを再現できませんでした。コメントに直接突撃した場合にキャプチャが表示されるかどうかはわかりません。 しかし、私がスクロールしたりカーソルを動かしたりするたびにRedditに送信される、この役立つハートビートに気づきました。それが私をより安全に感じさせるのでしょうか? 何がより安全なのでしょうか? フロントエンドから発生する安全上の問題という考えを払拭しましょう。それは純粋なPRの嘘です。代わりに、行間を読むと、Redditは人々がスクレイピングするのを望んでいません(なぜならそれは彼らの金だからです!)そして彼らは、少数の古いRedditユーザーを切り捨てることでスクレイピングを十分に妨害できると考えています。 これは実際にスクレイピングを止めますか? わかりません!新しいRedditでもまだスクレイピングできることを証明できたとは主張しません。確かにそれはより難しくなっているはずですが、スクレイパーは驚くべきことに、より軽量なRedditの使用を好むようです。ちなみに、それはデフォルトで8倍のコメントをロードします(200対25。はい、新しいRedditは最初に25コメントしかロードせず、スクロールすると自動的に35程度まで増えます)。 皮肉なことに、Redditはブラウザにさらに多くのものをロードさせて作業させることでスクレイピングを難しくできることを発見したようです。彼らはすでに、素敵なHTMLの断片を、ウェブコンポーネントか何かの5倍も肥大化したゴミに書き換えることでそれを達成していました。(編集的なコメントをしないようにしようとしましたが、諦めました、すみません) 問題は、Redditがold.reddit.comに静かに40X/30Xエラーを発行していたら、あるいは「誰もこれを使わないので、削除します」と言っていたら、Redditに不満を持つことはなかったということです。これは残念ですが、予測可能です。 セキュリティやスクレイピングに関する曖昧な主張のために、私を裏切る必要があると主張すること。それは私の問題では全くないのに?それは私を怒らせます。 私はAnubisのためにJSを有効にしているんだ、この野郎! とにかく、このブログが誰を危険にさらすのかを考えなければなりません。なぜなら、そのコア機能は、古いRedditと同様に、プレーンHTMLでテキストを提供することだからです。もっとも、私のブログは私のコンテンツなので、私にとっては大丈夫かもしれませんが、そのように…