JSFuck
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/02/14 02:55 UTC 版)
JSFuckは、JavaScriptのサブセットとして考案された難解プログラミング言語(JavaScriptのプログラミング作法)である。その内容は[
・]
・(
・)
・!
・+
の6文字のみでJavaScriptのコードを書くというもので、JavaScriptが弱い型付けのプログラミング言語であることを利用している。この仕様により、JavaScriptのあらゆる式はあらゆる型として評価できるため、JavaScriptの全機能を上記の6文字で置き換えることを可能にしている[1]。名前はBrainfuckに由来するが、独自のコンパイラやインタプリタを必要とするBrainfuckとは異なり、JSFuckはあくまでもJavaScriptの言語仕様に基づくためWebブラウザやJavaScriptエンジンで動作する。
- ^ Jane Bailey/The Daily WTF: "Bidding on Security". http://thedailywtf.com/articles/bidding-on-security
- ^ Hasegawa, Yosuke (2009年7月10日). “jjencode - Encode any JavaScript program using only symbols”. utf-8.jp. 2009年7月15日時点のオリジナルよりアーカイブ。2017年10月25日閲覧。
- ^ Hasegawa, Yosuke (2009年7月). “UTF-8.jp [2009-07-28]”. utf-8.jp. 2009年7月28日時点のオリジナルよりアーカイブ。2017年10月25日閲覧。
- ^ “Yet Another Useless Contest (but fun!) Less chars needed to run arbitrary JS code”. sla.ckers.org (2010年1月14日). 2011年3月1日時点のオリジナルよりアーカイブ。2017年10月25日閲覧。
- ^ “js-noalnum_com.php”. discogscounter.getfreehosting.co.uk. 2010年3月1日時点のオリジナルよりアーカイブ。2017年10月25日閲覧。
- ^ Hasegawa, Yosuke (2010年11月). “JSF*ck - []()!+”. utf-8.jp. 2010年12月1日時点のオリジナルよりアーカイブ。2017年10月25日閲覧。
- ^ Hasegawa, Yosuke (2010年11月). “UTF-8.jp [2010-11-30]”. utf-8.jp. 2010年11月30日時点のオリジナルよりアーカイブ。2017年10月25日閲覧。
- ^ Kleppe, Martin (2012年7月16日). “Commits · aemkei/jsfuck”. github.com. 2017年10月25日閲覧。
- ^ Kleppe, Martin (2012年9月). “Site report for www.jsfuck.com”. toolbar.netcraft.com. 2017年10月25日閲覧。
- ^ https://arstechnica.com/security/2016/02/ebay-has-no-plans-to-fix-severe-bug-that-allows-malware-distribution/ Ars Technica: Ebay has no plans to fix severe bug that allows malware distribution
- ^ https://github.com/fasttime/jquery-screwed jQuery JavaScript library made of only six different characters: ! ( ) + [ ]
- ^ 単項和演算子 + を付けられた項は暗黙的に数値に型変換される。配列を数値に変換するとその文字列の表す数値が得られる(参照:“Arithmetic operators (Web technology for developers)”. 2019年10月12日閲覧。)が、[](空配列)の場合得られる値 +[] はゼロである。
- ^ [](空配列)は論理値 true を持つと定義されている(すなわちtruthyである(参照:“Truthy (Web technology for developers)”. 2019年10月12日閲覧。))ため、これに二重not演算した !![] はtrueであり、それを数値に型変換した +!![] は1になる。
- ^ http://patriciopalladino.com/blog/2012/08/09/non-alphanumeric-javascript.html "Brainfuck Beware: JavaScript is after you!"
- ^ Adapted from: https://esolangs.org/wiki/JSFuck
- ^ Ré Medina, Matías A. (2012-09). Bypassing WAFs with non-alphanumeric XSS. Retrieved from http://blog.infobytesec.com/2012/09/bypassing-wafs-with-non-alphanumeric-xss.html.
- ^ “eBay has no plans to fix "severe" bug that allows malware distribution [Updated]”. Ars Technica (2016年2月4日). 2018年9月8日閲覧。
- 1 JSFuckとは
- 2 JSFuckの概要
- 3 セキュリティ
- JSFuckのページへのリンク