がべーじこれくしょん

技術系とかいろいろ

ReflectionExceptionが発生したときの対処法

[RuntimeException]                                                                                                                                                                
  Error Output: PHP Fatal error:  Uncaught exception 'ReflectionException' with message 'Class log does not exist'

これが出た時は、大抵の場合.envファイルに2バイト文字が使われてる可能性が高いです。

.envファイルをみてみると、

MAIL_SUBJECT=ご登録ありがとうございました。

こんな感じ。これでは例外を吐き続けますので、

MAIL_SUBJECT="ご登録ありがとうございました。"

こんな感じでしっかり文字列としてくくってあげましょう。

また、.envファイルに、かの有名な「全角スペース」さんが含まれていたりと、意味のないスペースがたくさんある場合も同じ例外が発生します。

同じような例外が発生した場合は、envファイルをチェックするとよい、ということですね!

参考サイト ReflectionException: Class log does not exist in /home/vagrant/Code/ | laracasts

ヤホーが乗っ取られた件について

しくじった

先日見事に某Yahooのアカウントが乗っ取られました。


きっかけは些細な事から

気づいたのは、Tポイントとアカウント連携しているアプリがエラーを吐いているところからです。

ある日ふとポイントを確認しようとアプリを開いたら、「IDとパスワードが間違っているようです」というエラーメッセージが。

「また回線の不調かなにかかな…」と思った僕はYahoo!Japanにアクセスしてログインしてみる。

(あれ…なんで弾かれるんだろ…)

そう思ってメールをチェック。すると以下のようなメールが大量にきていた。

**で始まるYahoo! JAPAN IDの連絡用メールアドレスから hogehoge@fuga.foo が削除されました。 ■パスワード再設定完了 **で始まるYahoo! JAPAN IDのパスワードは2016年x月yy日 00:11:22に再設定されました。

※当該アドレスや日付は伏せてあります。

明らかに見覚えのない時間や内容。というか明らかにこの時間は寝ていたぞ…

というわけでパスワード再設定を試みる。しかしなぜかログインできない。

ここで運営に連絡。しかし夜なのですぐには返信がかえってこない。

他にも被害がないかみたところ、Pixivもなぜかログイン不可になっていた。

Pixivに紐付けてあるのは被害があったYahooアカウントのため、パスワード再設定メールが届かない。

ここでさすがに思った。

やばい、詰んだ。

ここでしばらく頭を抱えていた。正直頭真っ白でどうにもならなかった…


力づくで奪還

途方にくれている中、とりあえずもがこうと思い、パスワードリセットを繰り返し申請した。

パスワードリセットを完了した直後にログイン画面に移動しログイン試行…というのを何回か繰り返し、なんとかログイン成功。

ワンタイムパスワードを設定し、とりあえず一安心。

アカウントをとりあえず無事取り返したのち、ログイン履歴をみてみると…

スクリーンショット 2016-03-23 9.39.34

なにやらすごい海外サーバーを串刺ししてアクセスした形跡がある。許せねえ…


Yahooのアカウント情報は罠だらけ

落ち着いたところで、なぜ不正ログインされたのかを考えてみたところ、「秘密の質問」が大きく関わっているのではないのかと思いました。

Yahooの場合、どういうわけか、初期に登録した「生年月日」と「秘密の質問」は、変更することができない仕様になっています。これが大きな罠です。

秘密の質問は設定しないという選択もできます。しかし、一度設定すると秘密の質問を削除することができません。仮に、「秘密の質問を設定してしまいあとで削除したい」となっても、どうやら削除することはできないようです。

秘密の質問は、どのサイトでも大きなセキュリティホールとなっています。Yahooのこの仕様は如何なものと思われますが、こればかりはどうにもならないと思います。

「Yahooは使わないほうがいい」と言いたいところですが、TポイントもなぜかYahooIDに統合されてしまいましたし、ありとあらゆるサービスがYahooに紐付けられてしまっている今となってはどうすることもできません。

大切なのは、二段階認証などを用いてなるべくセキュリティ効果の高い設定にしておくということです。

秘密の質問の仕様については呆れたものですが、もうこうなったら他の方法でセキュリティ強化するしかありません。

  • なるべく秘密の質問は設定しない
  • 2段階認証などを用いたセキュリティ強化をする

この二点については、今まで以上に気をつけるべきだと思われます。

パスワードもできれば違うやつを設定しましょうね…

Wordpressでシンタックスハイライトを使いたかっただけなんだ

俺はただ、シンタックスハイライトが使いたかっただけなんだ。

大事なことなので二回言いました。

はい、というわけなので、プラグインを入れてちゃちゃっと終わらせようと思います。

まずはググる。ググッた結果↓

  • 「SyntaxHighlighter Evolved」
  • 「Crayon-Syntax-Highlighter」

ふむ、どうやらこの2つしか選択肢はないようだ。

「なんかよくわからないし、とりあえずSyntaxHighlighter Evolvedを入れてみよう!」

これが地獄の始まりだったのだ…

てっきり以下のようになるのかと思ってました。

<?php
    echo "hogehoge";
?>

今となっては綺麗に表示されているこのphpコードだが、「SyntaxHighlighter Evolved」だと、html特殊文字の"<"がなぜかエスケープされて表示されてしまっていた。

「なにこれ…全然意味無いじゃん…」

てなわけで、すぐさまcrayonの方に変更。

crayon-syntax-highlighterで、エスケープ文字変換を回避する方法は、以下の素晴らしい記事をご参照ください。

WordPressよ、勝手に特殊文字をエスケープ文字に変換するのは辞めてくれ|三日坊主のメモ

そんなこんなで、無事シンタックスハイライトされるようになりましたとさ。めでたしめでたし…

いやあ…本当に疲れました…

面倒くさがりなPHPerのための短縮構文まとめ

ただのメモ。以下随時更新していきます。

echo構文

短縮前

<?php echo "Hi, there."; ?>

短縮後

<?="Hi, there."?>

注) php 5.4.0以前のバージョンでは、php.iniのshort_open_tagを有効にしないと機能しません。

short_open_tag=true

Hack Day 2016 事後レポみたいなの

image

“日本最大級のハッカソン"と呼ばれている(?)「Hack Day 2016」へ参加してまいりました!

実は私、これが初ハッカソンだったりします…笑

ハッカソンに出てみて、ものすごく驚いたことが、以下の3点です。

  1. りんご率の高さ
  2. ディスプレイ持参勢の存在
  3. 技術力の高さ

なんか…もう…3に関しては本当に痛感しています。「もっとこんな技術使いこなせればあんなこともできるのに…」とか「あんな技術使えばこんなこともできるのか…」といったことがたくさんあって驚きが24時間止まりませんでした。

それからディスプレイ持参勢。縦長ディスプレイにソースを表示させながら書いてる作業風景を眺めてると「ああ…あれすごいやりやすそうだな…ディスプレイ欲しいな…」とか思っちゃいました。次回は機材でガチります。(小並感)

さて、私は、チーム「都エアライン」として、デジタルフロッタージュの先駆け的なやつ[要出典]となる「PLOTtarge(プロッタージュ)」を作りました!

僕は専らソフト側での参戦でしたが、思うように貢献できなかった気がしますね…うむむ…。 できればもうちょっと先輩の指示待ちなしで動ければよかった気がします。

この「プロッタージュ」自体はペン型のデバイスで、擦りだしたい画像を指定して、あとはペンで紙をこするとどんどん画像が浮き出て…くるはずでした!!

デモはほぼ正常に動作しました。細かい補正をもう少し工夫できればよかったのかなと反省しておりますが、とりあえず動くものが完成して本当によかったです。先輩方はやはり素晴らしい…

残念ながら入賞には至りませんでしたが、思った以上に展示場所に来ていただいた方が多く、とても嬉しかったです。

hackday自体は毎年やってるみたいなので、来年はリベンジかけたいと思います。それまでにとりあえず画像処理系統と機械学習を一通り使いこなせるようにしなくては…

ではでは。