タグ

JavaScriptとtipsに関するt-murachiのブックマーク (6)

  • Node.jsにおけるプロトタイプ汚染攻撃とは何か - ぼちぼち日記

    1. はじめに 最近わけあってNodeのセキュリティ調査をしているのですが、今年の5月に開催された North Sec 2018 でセキュリティ研究者の Olivier Arteau 氏による 「Prototype pollution attacks in NodeJS applications」という面白い発表を見つけました。 この発表の論文や発表資料、デモ動画などもgithubで公開されていますし、ちょうどタイミングよくセッション動画も最近公開されました。 github.com Olivier Arteau -- Prototype pollution attacks in NodeJS applications この発表で解説されているのは、悪意のある攻撃者が、JavaScript言語固有のプロトタイプチェーンの挙動を利用して、Webサーバを攻撃する方法です。 発表者は、npmからダ

    Node.jsにおけるプロトタイプ汚染攻撃とは何か - ぼちぼち日記
    t-murachi
    t-murachi 2018/10/19
    Node.js に __proto__ 無効モードが欲しいくらい。いやね、アクセス制御のない言語仕様で特別な挙動をする共通の特殊メンバを持たせること事態が危険っちゃ危険なんだよね…(´・ω・`)
  • Leak Free Javascript Closures

    October 20, 2005 Javascript closures can be a powerful programming technique. Unfortunately in Internet Explorer they are a common source of memory leaks. Therefore I propose a method to create closures that don't leak memory. Problem First start with a short explanation of the problem I tried to fix. Here is an example of a simple event handler (IE only for clarity): function attach() {

    t-murachi
    t-murachi 2011/04/17
    これって…よーするに参照をグローバルに移動して、あとは自前でガベッジコレクトしろっちゅーことだよな… orz
  • DOM オブジェクトとメモリリーク: Days on the Moon

    IE でのメモリリーク ちょこちょこと紹介されているので知っている人も多いと思うが、IE には DOM ノードに絡んだメモリリークの問題がある。これに関しては Microsoft 自身の記事である「Understanding and Solving Internet Explorer Leak Patterns」に詳しいが、簡単にいえば DOM ノードオブジェクトに関する循環参照を作ると、IE を終了させるまでそのオブジェクトが解放されないというものだ。記事によればメモリリークには以下のようなパターンがあるという。 1. 単純な循環参照 ある DOM ノードオブジェクトのプロパティをたどっていくと自分自身に行き着く場合。以下のようなパターンが考えられる。 element.property == element element1.property1 == element2, element2

    t-murachi
    t-murachi 2011/04/17
    http://bit.ly/fg6J7P の解りやすい解説記事。なるほど。
  • DOMで作ったラジオボタンが選択できない | OKWave

    Sleipnirの「選択部分のソースを表示」で確認したところ、name属性がセットされていないようです JavaScript DOM で作成したラジオボタンが選択できません。 Sleipnirの「選択部分のソースを表示」で確認したところ、 name属性だけがセットされていないようで、選択できない原因はそれだと思いますが、 セットできない理由が分かりません。 どなたか解決策を教えて頂けないでしょうか。 なお、下記の何れの方法でもダメなようです。 obj.name = "hogehoge" obj.setAttribute("name", "hogehoge"); 念のため、現象確認用のソースも貼っておきます。 <html> <head> <script type="text/javascript"> function create1() { var rObj = document.creat

    DOMで作ったラジオボタンが選択できない | OKWave
    t-murachi
    t-murachi 2010/05/07
    まぢかよ…勘弁してくれ orz
  • IT戦記 - Math.floor を使わずに小数を整数にする

    少数を整数にしたいような場合 たとえば、 0 - 9 のランダムな整数が欲しい場合 普通はこう書く var value = Math.floor(Math.random()*10); Math.floor を使わない場合はこう書く var value = ~~(Math.random()*10); 「~」は補数を求める単項演算子で、オペランドを整数変換するので二回やることでオペランドを整数化できるのです。 まとめ でも、もっといい方法があるかも。 皆様なら「どう書く?」のでしょうか。

    IT戦記 - Math.floor を使わずに小数を整数にする
    t-murachi
    t-murachi 2009/11/24
    「|0」は便利だな。
  • JavaScript正規表現メモ。 (JavaScriptでよく使う書き方。) - こせきの技術日記

    タイトル変えました。旧タイトル「JavaScriptでよく使う書き方」。よく使うけど毎回忘れる。 正規表現にマッチするかどうか。 RegExp#testを使う。 /abc/.test("abcdefg") // => true String#searchはマッチした位置を返す。マッチしない場合は-1。先頭にマッチすると0でfalseなので注意。真偽値が欲しい場合はString#searchを使わない。 "abcdefg".search(/xxx/) // => -1 "abcdefg".search(/def/) // => 3 "abcdefg".search(/abc/) == false // => true 正規表現の部分マッチを得る。 部分マッチを得るには、RegExp#execかString#matchを使う。execとmatchの速度は大して変わらない。 正規表現のベンチマー

    JavaScript正規表現メモ。 (JavaScriptでよく使う書き方。) - こせきの技術日記
    t-murachi
    t-murachi 2009/06/01
    JavaScript の正規表現リテラルってなんだかいろいろと不便な気がするのよね…。
  • 1