en30 is a user on oriwebdon.com. You can follow them or interact with them if you have an account anywhere in the fediverse. If you don't, you can sign up here.
3b5de7cb3d7aea8a

en30 @en30

@westantenna cd /home/mastodon/live してから実行していますか?

en30 boosted

🇺🇸MIT(マサチューセッツ工科大学)、#マストドン インスタンスを建立。(えまてぃどん or みっとどん?)
mastodon.mit.edu/
※登録をメールドメインで制限した学生収容インスタンスの模様。
#Mastodon #Fediverse
#MastodonFediverse

@westantenna 僕はdockerを使っていないのであまり力になれないかもしれません…でもこのログに関してはredisというミドルウェアがきちんと動いていることを示しているものだと思いますよ。何をして、何が表示されたのかをそのまま書いたりすると助け舟を出してくれる方が結構いるかもしれません。docker部分以外なら僕でも助けられる部分があるかもしれません。

見落としているケースがないか少し入念にテストを書こう。もしかしたらロジック自体見直しが必要かもしれない。
それでも気づかない部分があるかもしれないので、みなさんにレビューしていただけりするとうれしいなぁ… 😅

もうすこしまともな技術者になりたい…

気付く範囲に関して割と凡ミスっぽい…

```js
const parsed = new DOMParser().parseFromString('<div>&lt;script&gt;alert(&#039;hi&#039;)&lt;/script&gt;</div>', 'text/html');
```

としたときに`parsed.body.firstChild.textContent` が `"&lt;script&gt;alert(&#039;hi&#039;)&lt;/script&gt"` という誤った想定をしていたことが原因だった。実際には `"<script>alert('hi')</script>"`。(textContentだもんなぁ 🙄 )

反省点としては
- 使い慣れていないAPIに関して、ドキュメントを読まなかったこと
- すごく簡単なケースでさえテストを書かなかったこと

すいません…コード見直します…
みなさん温かい声ありがとうございます 😢

影響があった時間は4/27 17:20から21:50(JST)までです

影響があったのはoriwebdonをブラウザで見た場合で、ローカルのトゥートかつ悪意のあるコードが含まれたトゥートの個別ページ又はそのトゥートをしたユーザ個別ページを見た場合です。
cookieにはhttponly属性がついているのでセッションハイジャックはできないはずです。
X-XSS-Protectionヘッダは `1; mode=block` です。

@ms2sato ありがとうございます〜 😭

起きうることのリスクを考えるともっと開発/検証時間をとるべきだった…少なくともテストを書くべきだった…

@two_sann ありがとうございます 😭

申し訳ありません。syntax highlightの一部機能にXSS脆弱性がありました。
現在はrollbackしてあるので、上の状態は解消されています。
焦るあまり技術者として、してはならない判断をしてしまいました。皆さんを危険に晒す事になってしまい、本当に申し訳ありませんでした。
また、 @oshiimizunohuta さん早期に発見してくださって本当に有難うございます。

本当にやっちゃあかんやつや…

@oshiimizunohuta めちゃくちゃヤバイですね 😥 revertします…

対応言語は独断と偏見で選んだので、追加したい場合にはプルリクエストをもらえるとたぶん対応しま〜す
github.com/diverdown/mastodon/

@ms2sato
ありがとうございます 😄 !
普段1人で開発しててフィードバックもらえる機会が全然なくて〜 😓

CWをつけてるからですかね?はずしてみました

codeblockのsyntax highlight入れるの思っていたよりもだいぶ難しかった…
トゥート本文はサーバ側でHTML化されていて、他のクライアントやインスタンスのことを考えるとサーバ側でいじることができないのが結構厳しい。
特に `simple_format` されてきているのが結構辛い。
デリミタが
```html
<p>
```<br />
some code
</p>
```
みたいな形で来たりする。

テキストのまま変換するのが結構怖かったので、とりあえずhtmlをパースしてからDOMツリーをDFSしながら変形してみた。(怪しいので、おかしなところがあったらツッコミを頂けると喜びます github.com/diverdown/mastodon/
実装力が低くてDFS書くのもかなり時間がかかってしまった…

サーバからはplain textで送ってきてクライアント側でいじっていてくれていればもう少しやりやすそうなんだけども…

このインスタンスではcodeblockがsyntax highlightされるって本当ですか? Show more

このインスタンスではcodeblockがsyntax highlightされるって本当ですか? Show more