aタグに javascript: と書いて、スクリプトを実行させるものは
疑似プロトコルと呼ばれ、多用されています。
しかし、ブラウザの特定の環境下(※)では
別窓(新規タブ)が開いてしまうようになり、
スクリプトが動作しません。
■解決する方法の例:
<a href="javascript:sampleFunction();">戻る</a>
↓
<a href="#" onClick="sampleFunction();return false;">戻る</a>
上記のように修正します。
return false;は「#」によるページスクロール抑止のためです。
みなさんも、サイト内のコードをチェックしてみましょう。
エラーではないですが、動作の不具合を起こしやすいですし、
気が付きにくいです。
HTML Lint によると、疑似プロトコルは
Mozilla以外ではサポートされていません。
http://www.htmllint.net/html-lint/explain.html の235番。
今後は、
<a href="#" onClick="sampleFunction();return false;">
で書こうと思います。
-------------
※当方で問題があった環境:
Chromeの最新版 + プラグイン「Opens external links in a new tab1.0」
2019年10月4日金曜日
2019年5月13日月曜日
fail2ban / recidive error: エラー
2019-05-12 05:39:30,493 fail2ban.actions[19862]: WARNING [postfix-sasl-iproute] Ban XXX.XXX.XXX.XXX
2019-05-12 05:39:32,324 fail2ban.actions[19862]: WARNING [recidive] Ban XXX.XXX.XXX.XXX
2019-05-12 05:39:32,327 fail2ban.actions.action[19862]: ERROR ip route add blackhole XXX.XXX.XXX.XXX returned 200
2019-05-12 07:24:53,626 fail2ban.actions[19862]: INFO [recidive] XXX.XXX.XXX.XXX already banned
recidive Interfere with other action
postfixなど他の Ban/Unban と recidive の Ban が
干渉してうまく recidive が動作しない。
例えば、recidive がせっかく Ban したものを、他がUnbanしたり、
他が Ban した後に、recidive が Ban しようとして重複Banでコケる。
/etc/fail2ban/filter.d/recidive.conf
そこで上記を編集する。
*変更箇所(Change/Replace): Ban -> Unban
*Before
failregex = ^(%(__prefix_line)s|,\d{3} fail2ban.actions%(__pid_re)s?:\s+)WARNING\s+\[(?!%(_jailname)s\])(?:.*)\]\s+Ban\s+\s*$
*After
failregex = ^(%(__prefix_line)s|,\d{3} fail2ban.actions%(__pid_re)s?:\s+)WARNING\s+\[(?!%(_jailname)s\])(?:.*)\]\s+Unban\s+\s*$
これで干渉せず正しく動作するようになる。
Interfere will be solved.
CentOS7 / fail2ban0.8.12
2019-05-12 05:39:32,324 fail2ban.actions[19862]: WARNING [recidive] Ban XXX.XXX.XXX.XXX
2019-05-12 05:39:32,327 fail2ban.actions.action[19862]: ERROR ip route add blackhole XXX.XXX.XXX.XXX returned 200
2019-05-12 07:24:53,626 fail2ban.actions[19862]: INFO [recidive] XXX.XXX.XXX.XXX already banned
recidive Interfere with other action
postfixなど他の Ban/Unban と recidive の Ban が
干渉してうまく recidive が動作しない。
例えば、recidive がせっかく Ban したものを、他がUnbanしたり、
他が Ban した後に、recidive が Ban しようとして重複Banでコケる。
/etc/fail2ban/filter.d/recidive.conf
そこで上記を編集する。
*変更箇所(Change/Replace): Ban -> Unban
*Before
failregex = ^(%(__prefix_line)s|,\d{3} fail2ban.actions%(__pid_re)s?:\s+)WARNING\s+\[(?!%(_jailname)s\])(?:.*)\]\s+Ban\s+
*After
failregex = ^(%(__prefix_line)s|,\d{3} fail2ban.actions%(__pid_re)s?:\s+)WARNING\s+\[(?!%(_jailname)s\])(?:.*)\]\s+Unban\s+
これで干渉せず正しく動作するようになる。
Interfere will be solved.
CentOS7 / fail2ban0.8.12
2017年10月2日月曜日
外部サーバー(DB、SMTB、Redisなど)との疎通確認を簡単にする方法
<使用コマンド>
netcatコマンドというのを使います。コマンド自体は、「nc」です。
# nc
<使うシチュエーション>
・複数台のサーバーでアプリケーションを構成する場合、
それらの間の、通信の確認だけをまず行いたいという時があると思います。
・プログラムソースレベルの問題なのか、
ネットワーク関連の問題なのかを切り分けるのにも使えます。
<ncコマンドが入っていない時>
# which nc で、インストール状態を確認して、
入っていないようでしたら
# sudo yum install nc nmap
または
# sudo apt-get install netcat
<コマンドの文法>
# nc -v 対象ホスト(IPアドレス等) ポート番号
「-v」により、通信の詳細を表示させます
-----------------------------------------------------------------
<利用例>
■SMTPサーバーとの疎通確認
(例)
SMTPサーバー: mail.sample.com
ポート番号: 25
↓
# nc -v mail.sample.com 25
出力
Connection to mail.sample.com 25 port [tcp/smtp] succeeded!
220 mail.sample.com ESMTP
接続はOKなようです。
Ctrl+C を打つと、もとに戻ります。
逆に、何もレスポンスが帰ってこないようでしたら、
ネットワーク的につながっていないということです。
確認ポイント:
■DBサーバーとの疎通確認
(例)
DBサーバー: sql.sample.com
ポート番号: 3306
↓
# nc -v sql.sample.com 3306
出力
Connection to sql.sample.com 3306 port [tcp/ms-sql-s] succeeded!
接続はOKなようです。
何もレスポンスが帰ってこない場合については、前述のとおりです。
Ctrl+C を打つと、もとに戻ります。
■Redis /Elasticache サーバーとの疎通確認
(例)
DBサーバー: hoge.cache.amazonaws.com
ポート番号: 6379
↓
# nc -v hoge.cache.amazonaws.com 6379
出力
Connection to hoge.cache.amazonaws.com 6379 port [tcp/*] succeeded!
入力
set hoge 123 など
接続はOKなようです。
何もレスポンスが帰ってこない場合については、前述のとおりです。
Ctrl+C を打つと、もとに戻ります。
.
netcatコマンドというのを使います。コマンド自体は、「nc」です。
# nc
<使うシチュエーション>
・複数台のサーバーでアプリケーションを構成する場合、
それらの間の、通信の確認だけをまず行いたいという時があると思います。
・プログラムソースレベルの問題なのか、
ネットワーク関連の問題なのかを切り分けるのにも使えます。
<ncコマンドが入っていない時>
# which nc で、インストール状態を確認して、
入っていないようでしたら
# sudo yum install nc nmap
または
# sudo apt-get install netcat
<コマンドの文法>
# nc -v 対象ホスト(IPアドレス等) ポート番号
「-v」により、通信の詳細を表示させます
-----------------------------------------------------------------
<利用例>
■SMTPサーバーとの疎通確認
(例)
SMTPサーバー: mail.sample.com
ポート番号: 25
↓
# nc -v mail.sample.com 25
出力
Connection to mail.sample.com 25 port [tcp/smtp] succeeded!
220 mail.sample.com ESMTP
接続はOKなようです。
Ctrl+C を打つと、もとに戻ります。
逆に、何もレスポンスが帰ってこないようでしたら、
ネットワーク的につながっていないということです。
確認ポイント:
- 相手サーバー名は正しいですか
- ポート番号は正しいですか
- ファイアーウォールなどで閉じていませんか(こっち側)
- ファイアーウォールなどで閉じていませんか(相手側)
- 相手側サーバーから、接続許可は出ていますか
- 相手側サーバーは、動いていますか
■DBサーバーとの疎通確認
(例)
DBサーバー: sql.sample.com
ポート番号: 3306
↓
# nc -v sql.sample.com 3306
出力
Connection to sql.sample.com 3306 port [tcp/ms-sql-s] succeeded!
接続はOKなようです。
何もレスポンスが帰ってこない場合については、前述のとおりです。
Ctrl+C を打つと、もとに戻ります。
■Redis /Elasticache サーバーとの疎通確認
(例)
DBサーバー: hoge.cache.amazonaws.com
ポート番号: 6379
↓
# nc -v hoge.cache.amazonaws.com 6379
出力
Connection to hoge.cache.amazonaws.com 6379 port [tcp/*] succeeded!
入力
set hoge 123 など
接続はOKなようです。
何もレスポンスが帰ってこない場合については、前述のとおりです。
Ctrl+C を打つと、もとに戻ります。
.
2017年6月24日土曜日
【Javascript】URLを分解する: parse the URL
PHPのparse_url関数のようなもの。
var url ="https://example.com/dir1/dir2/index.php?aaa=111/bbb&bbb=7#hello";
var protocol= url.split(':')[0];
var hash = url.split('#')[1];
var query = url.split('#')[0].split('?')[1];
var host = url.split('#')[0].split('?')[0].split('/')[2];
var path = url.split('#')[0].split('?')[0].replace(host,"").replace(/^https*:[\/]{3}/,"");
console.log( protocol ); // https
console.log( host ); // example.com
console.log( path ); // dir1/dir2/index.php
console.log( query ); // aaa=111/bbb&bbb=7
console.log( hash ); // hello
var url ="https://example.com/dir1/dir2/index.php?aaa=111/bbb&bbb=7#hello";
var protocol= url.split(':')[0];
var hash = url.split('#')[1];
var query = url.split('#')[0].split('?')[1];
var host = url.split('#')[0].split('?')[0].split('/')[2];
var path = url.split('#')[0].split('?')[0].replace(host,"").replace(/^https*:[\/]{3}/,"");
console.log( protocol ); // https
console.log( host ); // example.com
console.log( path ); // dir1/dir2/index.php
console.log( query ); // aaa=111/bbb&bbb=7
console.log( hash ); // hello
2017年6月21日水曜日
pythonで機械学習:windowsで「Intel MKL」DLL エラー
Intel MKL FATAL ERROR: Cannot load mkl_intel_thread.dll
Intel MKL FATAL ERROR: Cannot load mkl_core.dll
解決法:インテルのサイトから最新のMKLを入手する
https://software.intel.com/en-us/intel-mkl
から「w_mkl_2017.3.210.exe」をダウンロードする。
(メールアドレスの登録が必要です)
windows:
インストール先フォルダから
「 mkl_ 」で始まるdll類を、
C:\Windows\System32にコピー(上書き)する
解決した。
当方の環境:
Windows7-64bit, Python3.5.2 (anaconda) 64bit、mxnet
Intel MKL FATAL ERROR: Cannot load mkl_core.dll
解決法:インテルのサイトから最新のMKLを入手する
https://software.intel.com/en-us/intel-mkl
から「w_mkl_2017.3.210.exe」をダウンロードする。
(メールアドレスの登録が必要です)
windows:
インストール先フォルダから
「 mkl_ 」で始まるdll類を、
C:\Windows\System32にコピー(上書き)する
解決した。
当方の環境:
Windows7-64bit, Python3.5.2 (anaconda) 64bit、mxnet
登録:
投稿 (Atom)