数値文字参照への変換

文字列を数値文字参照に変換するツールを作ってみました。

数値文字参照への変換ツール
(サーバー移転に伴いサービス終了しました。)

数値文字参照を使うと、例えばaという文字は次のようにも表記できます。

10進数による表記16進数による表記
aa

Webサイトにメールアドレスを書く際、直接アドレスを書く代わりに数値文字参照を使ってボットに収集され難くする利用を想定しています。

ただ、昔ならともかく、現在ではどこまで効果があるのか不明です。

ロリポップのウェブアプリケーションファイアウォール

ロリポップがWAF(Web Application Firewall)に対応したそうです。

サイト改ざんを防ぐ WAF 機能をすべてのアカウントに標準装備 – 2013年02月28日 / 新着情報 / お知らせ – レンタルサーバーならロリポップ!
https://lolipop.jp/info/news/3994/

WAF ウェブアプリケーションファイアウォール
http://lolipop.jp/waf/

具体的にどうなるのか知りませんが、「クロスサイトスクリプティングやSQLインジェクションなどを自動的にブロック」とあるのでとりあえず有効に設定してみました。

何か不具合が見つかれば無効に戻してみようと思います。

JScriptで使えるパス関連の文字列操作

WindowsにはWSH(Windows Script Host)というスクリプトが標準で搭載されています。WSHでは主にVBScriptかJScriptを使うと思いますが、今回はJScriptでのファイルパスに関連した文字列操作についてまとめてみようと思います。

ファイル名やドライブレターの抽出

サンプルとしてsampleを下のように定義し、fsoを作成します。

var sample = "c:\\aaa\\bbb\\jscript-sample.txt";
var fso = WScript.CreateObject("Scripting.FileSystemObject");

ベースネーム

WScript.Echo('GetBaseName: ' + fso.GetBaseName(sample));

実行結果

example

ドライブ名

WScript.Echo('GetDriveName: ' + fso.GetDriveName(sample));

実行結果

c:

拡張子

WScript.Echo('GetExtensionName: ' + fso.GetExtensionName(sample));

実行結果

txt

ファイル名

WScript.Echo('GetFileName: ' + fso.GetFileName(sample));

実行結果

sample.txt

親フォルダ

WScript.Echo('GetFileName: ' + fso.GetFileName(sample));

実行結果

sample.txt

パスの結合

WScript.Echo(fso.BuildPath('aa', 'bb'));
WScript.Echo(fso.BuildPath('aa\\', 'bb'));

実行結果

aa\bb
aa\bb

スクリプトのパスの取得

WScript.Echo(WScript.ScriptFullName);

実行結果

c:\jscript-sample.js

スクリプトのファイル名の取得

WScript.Echo(WScript.ScriptName);

実行結果

jscript-sample.js

スクリプトの実行

拡張子.jsで下記のようなテキストファイルを作成&実行(ダブルクリック)すると、次のようなダイアログが表示されます。

var sample = "c:\\aaa\\bbb\\jscript-sample.txt";
var fso = WScript.CreateObject("Scripting.FileSystemObject");

WScript.Echo('GetBaseName: ' + fso.GetBaseName(sample));

実行結果はc:\jscript-sample.jsという場所から実行した場合の結果です。