<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>フィルタ on akky@サイボウズラボ・ブログ</title>
		<link>https://labs.cybozu.co.jp/blog/akky/tags/%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF/</link>
		<description>Recent content in フィルタ on akky@サイボウズラボ・ブログ</description>
		<generator>Hugo</generator>
		<language>ja</language>
		
		
		
		
			<lastBuildDate>Thu, 21 Oct 2021 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://labs.cybozu.co.jp/blog/akky/tags/%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>問題のあるユーザー名登録を防ぐ英語圏のワードフィルタの実例</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/10/leaked-code-sample-to-check-bad-words/</link>
				<pubDate>Thu, 21 Oct 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/10/leaked-code-sample-to-check-bad-words/</guid>
				<description>&lt;p&gt;小片コード共有サービスの &lt;a href=&#34;https://ghostbin.com/57bCm&#34;&gt;pastebin に貼られ&lt;/a&gt;、Hacker News で ゲーム配信サービス大手の&lt;a href=&#34;https://news.ycombinator.com/item?id=28779566&#34;&gt;Twitch がユーザー登録時に弾いているフィルタ部分のソースコード&lt;/a&gt;だ、との主張で紹介されている SQL コードは、問題のある単語をチェックするためのコードです。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code data-lang=&#34;SQL&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;CREATE&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;OR&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;REPLACE&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;FUNCTION&lt;/span&gt; is_terrorism (VARCHAR) &lt;span style=&#34;color:#66d9ef&#34;&gt;RETURNS&lt;/span&gt; BOOLEAN &lt;span style=&#34;color:#66d9ef&#34;&gt;STABLE&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;AS&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$$&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;SELECT&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;replace&lt;/span&gt;(&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;_&amp;#39;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;) &lt;span style=&#34;color:#66d9ef&#34;&gt;LIKE&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;%did911%&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;OR&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;replace&lt;/span&gt;(&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;_&amp;#39;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;) &lt;span style=&#34;color:#66d9ef&#34;&gt;LIKE&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;%support%isis%&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;OR&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;replace&lt;/span&gt;(&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;_&amp;#39;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;) &lt;span style=&#34;color:#66d9ef&#34;&gt;LIKE&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;%isis%support%&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;OR&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;replace&lt;/span&gt;(&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;_&amp;#39;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;) &lt;span style=&#34;color:#66d9ef&#34;&gt;LIKE&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;%join%isis%&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;OR&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;replace&lt;/span&gt;(&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;_&amp;#39;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;) &lt;span style=&#34;color:#66d9ef&#34;&gt;LIKE&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;%isismember%&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$$&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;LANGUAGE&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;SQL&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;CREATE&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;OR&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;REPLACE&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;FUNCTION&lt;/span&gt; is_child_exploitation (VARCHAR) &lt;span style=&#34;color:#66d9ef&#34;&gt;RETURNS&lt;/span&gt; BOOLEAN &lt;span style=&#34;color:#66d9ef&#34;&gt;STABLE&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;AS&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$$&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;SELECT&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;replace&lt;/span&gt;(&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;_&amp;#39;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;) &lt;span style=&#34;color:#66d9ef&#34;&gt;SIMILAR&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;TO&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;%ped(o|0)(f|ph)(i|1)le%&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;OR&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;replace&lt;/span&gt;(&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;_&amp;#39;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;) &lt;span style=&#34;color:#66d9ef&#34;&gt;SIMILAR&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;TO&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;%isa%ped(o|0)%&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;SQL 文としてジャンルごとに定義されている関数は、イスラム国(ISIS)への参加を呼び掛ける文字列や、児童ポルノや人種差別・性犯罪やドラッグに関する英単語が含まれる文字列で True を返すようです。&lt;/p&gt;&#xA;&lt;p&gt;また、単純な単語の一致だけではなく、それら英単語の一部の文字を数字に置き換えるなどしてチェックをすり抜けようとするものもある程度見つけるようになっていました。a を 4 にしたり、 e を3 にしたりという &lt;a href=&#34;https://ja.wikipedia.org/wiki/Leet&#34;&gt;leetspeak&lt;/a&gt; と言われる変換ですね。&lt;/p&gt;&#xA;&lt;p&gt;ユーザー登録のできるwebサービスでは大なり小なりこのようなフィルタリングを行っているとは思います。コードが Hacker News の投稿者の言う通り Twitch で使われているものかはわかりませんが、この SQL で引っかかるような文字列をいくつか入れてユーザー登録しようとしたら、エラーは出ますね。実際には JavaScript レベルでエラーにしているようなので、SQL 文のフィルタは誰かが再現したものかもしれませんし、あるいはそれぞれが同じネタ元のフィルタを参照して作られたものかもしれません。&lt;/p&gt;&#xA;&lt;p&gt;各関数の名前からどのような性格の「悪い単語」を排除しようとしてるのかがわかります。&lt;/p&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;関数名&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;意味&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_terrorism&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;テロ&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_child_exploitation&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;児童搾取&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_hateful&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;ヘイト&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_harassment&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;ハラスメント&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_violence&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;暴力&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_tragedy&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;悲劇&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_selfharm&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;自傷&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_sexual&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;性的&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_drugs&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;ドラッグ&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_derogatory&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;軽蔑的&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_profanity&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;淫ら&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_blasphemy&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;冒涜&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_marijuana&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;大麻&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_sex_insult&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;性的侮辱&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;チェックされる単語の一つ一つは、多くが理解して気持ちのよい単語とは言えません。細かく紹介はしませんが、英語での罵倒や悪口の勉強がしたければいい教材となるやもしれません。&lt;/p&gt;</description>
			</item>
			<item>
				<title>フェイスブックやツイッターでの政治的なコメントを全部ネコ画像に置き換えるChromeブラウザ拡張Unpolitic.me</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2012/10/unpolitic-me/</link>
				<pubDate>Mon, 29 Oct 2012 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2012/10/unpolitic-me/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://developer.cybozu.co.jp/akky/2012/08/unbabyme-chrome-9d69/&#34;&gt;Facebookに流れてくる赤ちゃん画像を全部ネコ画像に差し替えるChrome拡張 Unbaby.me&lt;/a&gt; の作者が今回作ったのは、赤ん坊ではなく政治に関するコメントを見えなくするChrome拡張 &lt;a href=&#34;https://chrome.google.com/webstore/detail/unpoliticme/ecnbjncmlfdfdpnnbloliloehpcmjglg&#34;&gt;Unpolitic.me&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://developer.cybozu.co.jp/akky/2012/10/unpolitic-me/unpolitic-me-chrome-webstore/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2012/10/unpolitic-me/unpolitic-me-chrome-webstore_hu_9d8d71c5d72b6816.webp 480w, https://labs.cybozu.co.jp/blog/akky/2012/10/unpolitic-me/unpolitic-me-chrome-webstore_hu_73bda65afd1f9400.webp 600w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2012/10/unpolitic-me/unpolitic-me-chrome-webstore.png&#34; width=&#34;600&#34; height=&#34;374&#34; alt=&#34;&#34; title=&#34;unpolitic-me-chrome-webstore&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;この拡張を入れた状態でFacebookを閲覧し、そこに政治関連のキーワードがあると、こんな風に猫の画像が表示されます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://developer.cybozu.co.jp/akky/2012/10/unpolitic-me/unpolitic-me-facebook/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2012/10/unpolitic-me/unpolitic-me-facebook_hu_9df17a192bd71c93.webp 480w, https://labs.cybozu.co.jp/blog/akky/2012/10/unpolitic-me/unpolitic-me-facebook_hu_1f6ce9fe4d3d7203.webp 600w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2012/10/unpolitic-me/unpolitic-me-facebook.png&#34; width=&#34;600&#34; height=&#34;608&#34; alt=&#34;&#34; title=&#34;unpolitic-me-facebook&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;前回の赤ちゃんブロックと同じアイデアではありますが。アメリカの大統領選が間近なので、さぞかしアメリカ人のFacebookやTwitterでは、やれオバマがとかロムニーがというコメントが飛び交っているんでしょうね。&lt;/p&gt;&#xA;&lt;p&gt;ツイッター上ではこんな風になります。つぶやき元のユーザー名が&amp;quot;Politics Blocked&amp;quot;(政治はブロック)という名前になり、「代わりに動物の写真でも見ようよ」とリンク。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://developer.cybozu.co.jp/akky/2012/10/unpolitic-me/unpolitic-me-twitter/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2012/10/unpolitic-me/unpolitic-me-twitter_hu_12a35b7d74f777e0.webp 480w, https://labs.cybozu.co.jp/blog/akky/2012/10/unpolitic-me/unpolitic-me-twitter_hu_65d84658981f8ca7.webp 599w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2012/10/unpolitic-me/unpolitic-me-twitter.png&#34; width=&#34;599&#34; height=&#34;128&#34; alt=&#34;&#34; title=&#34;unpolitic-me-twitter&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;ブロックされた元の政治的なツイートをチェックしたければ、 @undo をクリックすると、元のツイートが表示されます。&lt;/p&gt;&#xA;&lt;p&gt;Chrome拡張のオプション画面で、どういうキーワードを「政治的」とみなすかがカスタマイズできます。日本語でも動いたので、日本語のそういう単語を登録しておけば、全部ネコ画像に置き換わって表示されるでしょう。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://developer.cybozu.co.jp/akky/2012/10/unpolitic-me/unpolitic-me-keywords/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2012/10/unpolitic-me/unpolitic-me-keywords_hu_1b495d0cbf540ae.webp 480w, https://labs.cybozu.co.jp/blog/akky/2012/10/unpolitic-me/unpolitic-me-keywords_hu_52e6198b7005adb4.webp 599w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2012/10/unpolitic-me/unpolitic-me-keywords.png&#34; width=&#34;599&#34; height=&#34;216&#34; alt=&#34;&#34; title=&#34;unpolitic-me-keywords&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;もちろん、ネコじゃなくて犬がいい人は、犬の画像が出てくるRSSフィードを登録することで、差し替える画像を犬にできます。&lt;/p&gt;&#xA;&lt;p&gt;つまり、「政治をネコに」と言っていますが、好きなキーワードをブロックし、好きな画像で差し替えられる汎用的なブラウザ拡張でもあるということです。&lt;/p&gt;&#xA;&lt;p&gt;このChrome拡張、既に1万人以上がインストールしています。ソーシャルメディアで選挙や支持政党の話は見たくない、という人や、友達ではあるけど「この話題は聞きたくないなあ」という友人がいる方は試してみてはどうでしょうか。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;http://www.geekologie.com/2012/10/google-chrome-extension-blocks-your-idio.php?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A&amp;#43;geekologie%2FiShm&amp;#43;%28Geekologie&amp;#43;-&amp;#43;Gadgets%2C&amp;#43;Gizmos%2C&amp;#43;and&amp;#43;Awesome%29&amp;amp;utm_content=livedoor&#34;&gt;Google Chrome Extension Blocks Your Idiot Friends&amp;rsquo; Political Rants From Your Facebook And Twitter Feed | Geekologie&lt;/a&gt;&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
