X

JavaScript

JSONPは危険なので禁止

CORS問題でAJAXリクエストが失敗する場合の対策として、CORSを設定を紹介しているところまでは良いのですが、他のオプションとしてJSONPを挙げているページを見つけました。記事作成が2018年4月になっていたのでつい最近のことです。あまり知られていないようです。 誤解の無いよう正確に書いておきます。誰かに見られて困るデータが含まれる場合、JSONPは禁…

JavaScriptでインジェクションリスクがある関数/機能など

Webブラウザに対するJavaScriptコードのインジェクションは サーバー側のコードが原因(サーバー側のPHP、Ruby、Python、JavaScriptが原因) クライアント側のコードが原因(クライアント側のJavaScriptが原因) サーバーとクライアント(上記の両方) で起きる可能性があります。ここでは主にクライアント側が関係するケースで注意し…

コンピュータは数値さえ正確に扱えない

コンピュータで数値を正確に扱うのは「実は結構難しい」です。つまり「コンピューターは数値を正確に扱えない」という事です。「コンピューターが数値を正確に扱えない?!何を言ってるんだ?!」と思った方は是非読んでみてください。 (さらに…)

Phalcon PHPとSails Node.jsのベンチマーク

以前にフレームワーク対決:Node.js+SailsとPHP+PhalconのベンチマークとしてPhalconとSailsのベンチマークを行ったのですが、Apacheを利用した場合のPhalconの性能が全く違うので取り敢えずブログに書きます。

Sailsで全てのCPUコアを使う

Node.jsのMVCフレームワークであるSailsはインストールも簡単で、気軽に試せます。しかし、Node.jsはシングルプロセス&スレッドで動作するので今時のマルチコアCPUではその性能はフルに発揮できません。以前はNginxなどで設定するなど、色々面倒でしたがPM2を利用すると簡単にプロセス管理が行えます。

CasperJS/PhantomJSでシンタックスエラー行を取得する方法

CasperJSやPhantomJSを使っていてシンタックスエラーがあると [yohgaki@localhost ]$ casperjs test.js SyntaxError: Parse error と表示するだけでエラー行を返してくれません。 (さらに…)

フレームワーク対決:Node.js+SailsとPHP+Phalconのベンチマーク

Node.jsは速いと言われています。Node.jsのMVCフレームワークであるSailsとPHP最速フレームワークであるPhalconとの性能を比較しました。 (さらに…)

Linux上のCasperJS/PhantomJS/SlimerJSでShift JIS/EUCを取り扱う方法

Linux上のCasperJS/PhantomJS/SlimerJSからShift_JIS/EUC-JPのページを取り扱う事が出来なくて困っていたのですが、解決策が分かりました。 (さらに…)

PHPのJSONのエスケープ

追記:最近のOWASPガイドの更新でJavaScript文字列はUnicodeエンコードで安全性を確保するよう変更されました。元々このブログでもUnicodeエスケープのまま利用するように書いています。他の言語のユーザーはUnicodeエスケープを利用しましょう。PHPもASCII領域の文字をUnicodeエスケープするようにした方が良いと思います。これは提…

PhantomJSがURLをopenするとハングする原因

PhantomJSはWebKitを利用したヘッドレスHTTPクライアントです。Webアプリのテストのみでなく、WebページをPDFや画像に変換する為に利用している方も多いと思います。手元のFedora19を載せているマシンでは動作せず、原因と思われる物も分ったのでエントリを作りました。 (さらに…)

RailsのJavaScript文字列エスケープ

RailsはJavaScript文字列エスケープメソッドをサポートしています。JavaScript文字列エスケープのエントリで様々な議論があったようです。弊社ではRailsアプリのソースコードも検査しているので、参考としてRailsのソースコードを確認したことを追記をしたました。Rails開発者に直して頂きたいので独立したエントリにしました。 参考: Jav…

JavaScript文字列のエスケープを回避する方法

JavaScriptの文字列をエスケープのエントリでJavaScript文字列をエスケープ後に直接出力するより、DOMから取得してはどうか?という提案があったのでエントリを作成しました。 (さらに…)

Open Ajax

Ajax普及目指すオープンソースプロジェクト「Open Ajax」をIBMやその他の会社がはじめた、とニュースリリースがりました。 ApacheとMozilla Pulicライセンスに基づき公開されるAjaxランタイムツールキットを提供するZimbraのサイトにデモアプリケーションがありました。メールとスケール管理のアプリケーションですが、ここまでやれば従来…

AJAX – ダイナミックWebコンテンツ

JavaScript/DOMを使ったメニュー生成やフォーム選択状況に応じて適切なメッセージを表示するダイナミックコンテンツは多くありましたが、よりインタラクティブなHTMLコンテンツがどんどん増えそうです。 AJAX = Asynchronous JavaScript + XML XMLHttpRequestを使った方法ですが、非常に新しいと言うことではない…