2017年03月19日

Ubuntu de Apache2 その2

debian系のApache2は設定が独特で慣れんな・・・。
AIXのIHSとかだと、ひとつのファイルにダーっと書いてあるんだが、
丁寧に分かれていて、コマンドも違うので、ちょっと慣れないとなー。
install とかはめっちゃ簡単でよろしいんだけど。

・インストール/Update
 sudo apt-get update
 sudo apt-get install apache2

・設定値
 /etc/apache2

・有効になっているモジュールの確認
 a2query -m

・モジュールのオンオフ
 a2enmod モジュール名
 a2dismod モジュール名

・サービスの再起動
 service apache2 restart

・うまく起動せんとき
systemctl status apache2.service
で確認。

セキュリティの設定いれたら Headersディレクティブが効かなくて、ハテ??となったら
デフォルトでは有効じゃなかったのね、ってオチ。orz

posted by koteitan at 14:28| Comment(0) | TrackBack(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2017年03月16日

bashである値を探す

もういい加減、pythonなりperlなりつかってもいいルールにしてくれよ。
linuxだよ、linux。
まだbash縛りかーいと。ローカル変数ちゃんと定義してないやつ多いし、
exitで抜けれてないやつとかもあるし、もう嫌い。

マイグレーション案件とかだと、もう吐きそうになるほどの
シェルスクリプトをあーでもないこーでもないしなきゃならんと思うけど、
こんときにクソみたいなコードに出会った場合、
直したい気持ちと、ガラス細工のようにバグも利用して偶然動いていたらどうしよう、、という
2つの気持ちが揺れ動きませんか、私だけですか、そうですか。

んで、タイトルの話なんだけど、pythonとかだとsetでokな内容も
配列ぐらいしかないbashでは大変。
元のソースはなんか、1行ずつgrepシテマス・・・けど・・・(;´Д`)< if の条件句でいいやーん・・。
で、配列.containsとか in 配列 とか出来ねーのか調べてみたが、
caseでど根性でやるパターン以外は、シンプルにループして探すのを書くしかない模様。


これが一番シンプルかなー。

containsElement () {
  local e
  for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done
  return 1
}

posted by koteitan at 17:11| Comment(0) | TrackBack(0) | プログラム全般 | このブログの読者になる | 更新情報をチェックする

2017年03月15日

JSON.parse()が厳密で辛い・・。

stringfy()してから渡せばちゃんとparseしてくれるが、
どこが間違っているのかわからない・・・。orz

素直にjsonicやjackson、Gson使えよ、って話なんだが、
ただのテスト用servletでわざわざclass定義するのもなぁ・・。
pythonでやれればいいんだが。
続きを読む
posted by koteitan at 16:19| Comment(0) | TrackBack(0) | 情報処理 | このブログの読者になる | 更新情報をチェックする

2017年03月10日

WebSphereでのJDK6/JDK7のサポートが終了

嘘のようなホントの話。猶予は2018/4/30までと2018/9/30だそうで。
アプリケーションの互換チェックとかリグレッションテストとか大変ですなぁ。

WAS V7/V8 サポート終了 およびWAS V8.5同梱のJava 6/7のサポート終了について

Java SE6のサポートが終了: 移行先は?


posted by koteitan at 16:44| Comment(0) | TrackBack(0) | WebSphere | このブログの読者になる | 更新情報をチェックする

watchコマンド

watchという便利なコマンドがあるのですが、なぜかcygwinには入っていないので、手動で入れなきゃだめ見たい。

Cygwin で Watch コマンドprocps
http://takuya-1st.hatenablog.jp/entry/2014/06/27/031605

watch コマンドあるぜーひゃっはー
Cygwin の watch コマンドはパッケージで提供されてないので、
探しまわっても見つからず途方に暮れて以前NCURSESをRubyで叩いて作ったことがあった。
procps というパッケージに含まれていることを知った。無知って怖い

apt-cyg install procps

これで無事にwatch コマンドが使えます。安心です。
ヒャッハー。
posted by koteitan at 16:20| Comment(0) | TrackBack(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2017年03月07日

HTML5Test

HTML5を勉強しだして、つくづく思うのはIEがイケてないということだなぁ・・。
対応していない要素が多すぎる。(;´Д`)



win7+IE11だと302点しかないぞ・・・。
このblogを書いている Firefox 51.0 on Ubuntu で469点。
FireFoxも優秀ではあるが、input type=timeとかに対応してねぇのがなぁ・・。

日付入力とか時刻入力なんて普通にあるのに
早く対応しねぇかな・・。
jQueryプラグインでごまかすのもなんだかなぁ、と思います、はい。
posted by koteitan at 16:23| Comment(0) | TrackBack(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2017年03月06日

pythonがなければjavascriptでいいじゃない

なーんにも開発環境も入ってないwindowsだけで、アクセスログを解析しろとか言われましてもね、、(;´Д`)

凝った解析はいらなかったらしいので、javascriptでちまちまやったけど、
なんだかなぁ、感。

めも
  • cscriptコマンドでjavascriptファイルは実行できる(VBscriptも)
  • ファイルの読み出しとかはActiveXに頼るしかないみたい(var fs = new ActiveXObject("Scripting.FileSystemObject");
    ) 
  • なんかjavascriptのバージョン古い気がする。Arrays.forEach(function(){})が使えん・・・
  • 入力引数もwshに頼る。( var arg1=WScript.Arguments.Item(0);)
まぁ、BATやPowerShellでやることを思えばまだ楽ですわな。
続きを読む
posted by koteitan at 16:36| Comment(0) | TrackBack(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2017年03月02日

SQLite3 小技 fetchall()

SQLiteは便利ですよねぇ。
辞書では物足りないが、いちいちclass定義するのもなんだかな、という時とか
中断データ作る時とか、色々便利。:memoryにしておけばファイルも作らなくていいから、
集計とかにもいいですよね。

エクセルなのにエクセルで集計できんレイアウトになってたりしても
python+xlrd+SQLite3でど根性集計もできる。脱線した。

で、技というか 1カラムしかselectしない時は、いちいちタプルで渡してくれなくてもいいので

c.execute("select filepath from master")
row =[str(item[0]) for item in c.fetchall()]

こんな感じでタプルを解除してしまえば、

for r in row:
  func(r)

みたいな感じで後続が楽、という話さ。

検索結果がA,B,Cとした場合、[(u'A',),(u'B',),(u'C',)] と帰ってきてしまう(タプルの配列になる)ので、
['A','B','C']と入れ替えてるだけです。(タプル外して、unicodeも解除)

fetchallできないような巨大な応答とかはコツコツカーソルを動かして頑張るしかないですが。


参考リンク

続きを読む
posted by koteitan at 14:12| Comment(0) | python | このブログの読者になる | 更新情報をチェックする

CVE-2016-8743  Apache HTTP Request Parsing Whitespace Defects

リクエスト中にあるCRをスペースと解釈することを悪用してスマグリング攻撃をしかけたり、とかの問題。
歴史的な問題から、HTTPリクエストの解釈はウルトラふんわりしなきゃならなかった。
HTTP/1.1もhttp/1.1でもOKにするとか、スペースの数とかね。

もっと詳しくはRFCを熟読してもらうとして、(https://tools.ietf.org/html/rfc7230#section-3.1.1
この解釈をきっちり行うことで、脆弱性を防ぐ、というわけだね。


     Apache HTTP Server, prior to release 2.4.25, accepted a broad pattern of unusual whitespace patterns from the user-agent, including bare CR, FF, VTAB in parsing the request line and request header lines, as well as HTAB in parsing the request line. Any bare CR present in request lines was treated as whitespace and remained in the request field member "the_request", while a bare CR in the request header field name would be honored as whitespace, and a bare CR in the request header field value was retained the input headers array. Implied additional whitespace was accepted in the request line and prior to the ':' delimiter of any request header lines.

    RFC7230 Section 3.5 calls out some of these whitespace exceptions, and section 3.2.3 eliminated and clarified the role of implied whitespace in the grammer of this specification. Section 3.1.1 requires exactly one single SP between the method and request-target, and between the request-target and HTTP-version, followed immediately by a CRLF sequence. None of these fields permit any (unencoded) CTL character whatsoever. Section 3.2.4 explicitly disallowed any whitespace from the request header field prior to the ':' character, while Section 3.2 disallows all CTL characters in the request header line other than the HTAB character as whitespace.

    These defects represent a security concern when httpd is participating in any chain of proxies or interacting with back-end application servers, either through mod_proxy or using conventional CGI mechanisms. In each case where one agent accepts such CTL characters and does not treat them as whitespace, there is the possiblity in a proxy chain of generating two responses from a server behind the uncautious proxy agent. In a sequence of two requests, this results in request A to the first proxy being interpreted as requests A + A' by the backend server, and if requests A and B were submitted to the first proxy in a keepalive connection, the proxy may interpret response A' as the response to request B, polluting the cache or potentially serving the A' content to a different downstream user-agent.

    These defects are addressed with the release of Apache HTTP Server 2.4.25 and coordinated by a new directive;

        HttpProtocolOptions Strict

    which is the default behavior of 2.4.25 and later. By toggling from 'Strict' behavior to 'Unsafe' behavior, some of the restrictions may be relaxed to allow some invalid HTTP/1.1 clients to communicate with the server, but this will reintroduce the possibility of the problems described in this assessment. Note that relaxing the behavior to 'Unsafe' will still not permit raw CTLs other than HTAB (where permitted), but will allow other RFC requirements to not be enforced, such as exactly two SP characters in the request line.

    Acknowledgements: We would like to thank David Dennerline at IBM Security's X-Force Researchers as well as Régis Leroy for each reporting this issue.
    Reported to security team: 10th February 2016
    Issue public: 20th December 2016
    Update Released: 20th December 2016
    Affects: 2.4.23, 2.4.20, 2.4.18, 2.4.17, 2.4.16, 2.4.12, 2.4.10, 2.4.9, 2.4.7, 2.4.6, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.2.31, 2.2.29, 2.2.27, 2.2.26, 2.2.25, 2.2.24, 2.2.23, 2.2.22, 2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16, 2.2.15, 2.2.14, 2.2.13, 2.2.12, 2.2.11, 2.2.10, 2.2.9, 2.2.8, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.0



Security risks of Unsafe

Users are strongly cautioned against toggling the Unsafe mode of operation, particularly on outward-facing, publicly accessible server deployments. If an interface is required for faulty monitoring or other custom service consumers running on an intranet, users should toggle the Unsafe option only on a specific virtual host configured to service their internal private network.
 HttpProtocolOptions Unsafe で元通りの解釈になるようなので、この修正を適用したらアプリがエラー吐きまくりでござる、\(^o^)/
 になったら、十分に安全を確認(悪意が入らないかどうかを精査)した上で、解除するってのも有りなんだろうけど。
 ま、自己責任で。セキュリティの観点からいえばアプリを直せ、になるからねぇ。
続きを読む
posted by koteitan at 13:44| Comment(0) | TrackBack(0) | 情報処理 | このブログの読者になる | 更新情報をチェックする

2017年02月27日

[DB2]DB2の構成パラメータをSQLから参照するには

どんな状況下で、こんな技が必要なのかはよくわからないが、
SYSIBMADM経由でアクセスできるようだ。

DBCFG 管理ビューおよび DB_GET_CFG 表関数 - データベース構成パラメーター情報の取得


こちらのblogにも詳しく説明があります。

DB2勉強する 〜 DB2の構成パラメータの確認・設定方法

posted by koteitan at 14:33| Comment(0) | TrackBack(0) | DB2 | このブログの読者になる | 更新情報をチェックする