« 2013年4月 | トップページ | 2013年6月 »

2013年5月24日 (金)

yum曰く「セグメンテーション違反です」

敷布団にクールシーツを使うようになって、寝返りが極上に気持ちよくなったなあと思っていたある日、yumを叩くと「セグメンテーション違反です」と怒ってくるようになった。
ググるとすでにソリューションはいろいろあがっている。
https://www.google.co.jp/search?q=yum+セグメンテーション違反です

しかし


$ sudo rm -f /var/lib/rpm/__db.00*
$ sudo rpm –rebuilddb
$ sudo yum clean all



$ sudo yum –disablerepo=* –enablerepo=base install

もダメだった場合、libz.so.1.2.5が悪さをしているので1.2.3にダウングレードする、というソリューションがあります。
結果から言うと、これでうちも解決しました。
クールシーツに取り替えるタイミングのいつかどこかでかに、何かをインストールした際にlibzが1.2.5にあがってしまったのでしょう。依存性するライブラリを暗黙でインストールとかしちゃったのでしょうか。そら恐ろしいです。もはやうすら寂しいです。

ではなぜここであらためて記事にして書いているのかというと、「libzは1.2.8の上位バージョンではダメ」でした。
上位バージョンであれば、不具合解消はおのずと務まっているはずだというのは、少なくとも本件においては幻想でした。
環境によるかもしれません。うちはこうです。

$ cat /proc/version
	Linux version 2.6.18-308.13.1.el5 (mockbuild@builder10.centos.org) 
	(gcc version 4.1.2 20080704 (Red Hat 4.1.2-52)) #1 SMP Tue Aug 21 17:10:06 EDT 2012
$ cat /etc/redhat-release
	CentOS release 5.5 (Final)
$ yum --version
	3.2.22

仕方ないので、以下を参考に1.2.3にして解決です。
http://serverfault.com/questions/256385/yum-segmentation-fault-in-centos

それと蛇足かもしれませんが一点注意を。
libzがなくなるとsudoコマンドが使えなくなります。1.2.5を削除してからインストールしようなどとすると、


$ sudo make install
error while loading shared libraries: libz.so.1:cannot open shared object file :
No such file or directory

となってインストールできなくなってしまいます。

素直に以下のように、シンボリックを元に戻して対応が吉。

$ ls -l /usr/lib | grep zlib
	-rw-r--r--  1 root root  101462  7月 25  2010 libz.a
	lrwxrwxrwx  1 root root      13  7月 25  2010 libz.so -> libz.so.1.2.5
	lrwxrwxrwx  1 root root      13  7月 25  2010 libz.so.1 -> libz.so.1.2.5
	-rwxr-xr-x  1 root root   75028  1月 10  2007 libz.so.1.2.3
	-rwxr-xr-x  1 root root   96572  7月 25  2010 libz.so.1.2.5
$ sudo rm libz.so libz.so.1
$ sudo lin -s libz.so.1.2.3 libz.so
$ sudo lin -s libz.so.1.2.3 libz.so.1

これでまた気持ちのいい寝返りを打てる安息の日々が戻ってきましたとさ。

| | コメント (0) | トラックバック (0)

2013年5月 9日 (木)

続・クリックジャッキング対策

こんにちは、シーチキンマヨネーズは史上最強ですね。時代を超越して、今後もごはんに塗られ続けることでしょう。
ところで、クリックジャッキング対策の続きです。

もし"X-FRAME-OPTIONS"ヘッダに対応していないブラウザを利用していて、変えることができないユーザーを考慮するなら、以下の代替策もいいと思います。


if (window.self != window.top)
window.top.location = window.self.location;


「もし自身のページと親ページのウインドウが異なれば、自身のページでリダイレクトする」の意


これ、なにげに強力です。
"X-FRAME-OPTIONS"は許容条件外のフレーム使用がおこなわれると、自身のページを表示しなくなりますが(それによって不正利用を防止する)、これは自身のページでリダイレクトし直すという、もっとアグレッシブでサディスティックでアトミックな挙動になります。

ユーザーに不正利用の温床の存在すら知らせない(すぐにリダイレクトしてフレーム内のサイトが親ページとして表示され直されるので)という、ユートピア追求型です。

場合によっては、不正利用しようとしている側からすれば、何度アクセスしてもリダイレクトされて存在をニフラムされてしまうことにいきり立って、攻撃心が刺激され、オームの赤い目をしながら、あの手この手でハックしにかかってくるかもしれません。
この場合、つまり相手のサディズムが「強制リダイレクト」というサディズムをうわまわるかどうかにかかってきますね。

まあ、滅多にいないと思いますが。
そういうサリーちゃんのパパみたいなひとの対策も踏まえるなら、やはり"X-FRAME-OPTIONS"ヘッダで、つつましく大和撫子型の防衛網を敷くのがよろしいのではないかと存じます。

| | コメント (0) | トラックバック (0)

« 2013年4月 | トップページ | 2013年6月 »