omohayui blog

おも‐はゆ・い【面映ゆい】[形][文]おもはゆ・し[ク]《顔を合わせるとまばゆく感じられる意》きまりが悪い。てれくさい。

phpMyAdminの脆弱性をついた攻撃

趣味で作成中のサイトに、アムステルダム辺りから謎アクセスが結構きていた。

# 例)
[18/Jul/2015:04:06:34 +0900] "GET //phpMyAdmin/scripts/setup.php HTTP/1.1" 404 1564 "-" "-"
[18/Jul/2015:04:06:34 +0900] "GET /muieblackcat HTTP/1.1" 404 1564 "-" "-"
[18/Jul/2015:04:06:34 +0900] "GET //phpmyadmin/scripts/setup.php HTTP/1.1" 404 1564 "-" "-"
[18/Jul/2015:04:06:34 +0900] "GET //myadmin/scripts/setup.php HTTP/1.1" 404 1564 "-" "-"

調べたらphpMyAdmin脆弱性をついた攻撃だった。 もともと2009年に報告されている脆弱性だが、 今でも放置されているサイトがごまんとある為、乗っ取りを狙ったアクセスが絶えない模様。

ていうかまだ全然コンテンツとしてはリリースしてないんだけど、 ドメイン名から辿り着くのかな。

そもそもPHPでなく、Railsで作成中のサイトなので全く影響はないのですが、こわいなーと思ったしだいでした。

リーダブルコード読書会 1〜3章

第1章 理解しやすいコード

優れたコードって?

簡潔で短いコード < 理解しやすいコード

  • 1行にしたことでコードは短くなったけど、カッコがどこにかかっているのがわけわからん。
  • コメントをつけた方がよい場合もある
      -> 何をしているかより、何のためにしているか(個人談

まとめ

理解しやすいコードを意識しよう
(2章以降を読んで書けるようになろう)


第2章 名前に情報を詰め込む

名前は短いコメントのようなもの

NG)情報の一部を名前にする  
 ↓↓↓  
必要な情報を名前にする  

  • 汎用的な名前を避ける
    • メソッド: get, send, find, start, make
    • 変数: tmp, retval, results
    • ループイテレータ: i, j, k
  • プロジェクト固有の省略形
  • 具体的な名前を使う
  • 値の単位
  • 名前の長さ
    • スコープが小さければ短い名前でもいい
    • 単語補完のコマンド必須
  • 名前のフォーマット
    • クラス名: UpperCamelCase
    • メソッド: lowerCamelCase
    • 変数名: lower_separated
  • 定数: UPPER_CASE
     

第3章 誤解されない名前

誤解される名前に気を付けろ

他の意味にとらえられる、曖昧になる名前は使うべからず

  • 曖昧な名前
    • filter, Clip(text, length)
  • 未満・以下
    • limit -> 以下?未満?
    • max -> 以下!
  • 範囲
    • start, stop -> stopは範囲内?外?
    • first, last -> lastは範囲内
  • 排他的範囲
    • begin, end -> endは範囲外
  • ブール値の名前
    • true, falseの定義が明確であること
    • 頭に is・has・can・should 等をつける
  • ユーザの期待に合わせる
    • get(), size() ->は軽量なメソッドが期待される

ChromeでスマホUAに切り替える

スマホUAに切り替える方法を教えて下さいという話を頂いたので、
図入りで説明したくなりました。
chromeだとアドオンなしで超簡単にできます。

  1. Chromeのブラウザを立ち上げてから、Developer Toolsを開く

  Macなら → CommandOptionIキー

  Windowsなら → F12キー

  2.スマホマークをクリック

f:id:omohayui:20150606003153p:plain

  3.デバイスを選択

f:id:omohayui:20150606003241p:plain   (例) iPhone6

画面のサイズも切り替え可能。便利ですねー。

bundle install でエラー

MacOSⅩ(10.10.2)で通常通りにrailsで bundle install したらエラー

% bundle install
  :
  :
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/iterator:341:10: fatal error: '__debug' file not found
#include <__debug>
         ^
1 error generated.

なんだかYosemiteのCommandLineToolsが悪さしてそう・・・

で、AppStoreでCommandLineToolsのバリデーションをアップデートしたら直った。

CommandLineToolsのバージョン:6.3

▼このあたりでお話あったようだ
https://github.com/knu/ruby-unf/issues/11