管理画面にログインしたら大量メールが暴発した話
こんにちは。
最近立て続けにミスしている私ですが、
この度、ローカル環境でWordPressの管理画面にログインしたら、ありとあらゆる人にメールが飛んでしまいました...
ご迷惑おかけしてしまった方々、申し訳ありませんでした... orz
まず経緯から。
2月 - 開発(メール送信されず)
WP SMTPを使うケースが多いと思うのですが、今回はそれを使用していないプロジェクトでした。
デフォルトのPHPMailerはsendmailで25ポートを使うようなのですが、最近のプロバイダは迷惑メール対策(Outbound Port 25 Blocking - Wikipedia)をしていて、送れないケースが多いようで。
そしてこのとき契約していたプロバイダは案の定OP25Bしていました。
なので、当時メール送信処理を介した開発を行っていたのですが1通も送信されずじまい。
(このとき裏でmailqにどんどんスタックされていました。)
3月 - プロバイダ変更
社内のネットワーク環境の見直しが入り、同時にプロバイダも変わりました。
この新しいプロバイダは25ポートOKで、sendmailから気軽にメールが送れるようになりました!
...!?
そしてきたる事件の5月。
久しぶりに管理画面にログインしたら、よくわからないメールが大量送信!!!!
なぜだ!!!WordPress!!!
WordPressの管理画面でログイン成功時に、擬似クーロン(wp-includes/cron.php)が起動します。
この擬似クーロンは、通常のクーロンとは異なり、サイトアクセスがあったときにスケジューリングされている処理があれば、実行するようなものらしいです。
そしてこの擬似クーロンの中に、最新のWordPressのバージョンを確認する処理があり、自動でサイト登録者宛にメールで通知してくれる処理があります。(wp_includes/update.php#wp_version_check)
ここが爆弾。
sendmailが送信可能ってわかったら、即座にmailqに溜まっていたメールが全て放出。
これぞ、迷惑メールw
「坂上忍の成長マン!!」 2015年5月9日(土)放送時に紹介されたグッズ(掃除編)
こんにちは。今回は、変わり種です。
いつもなんとなくテレビつけてて流している程度なんですが、
『坂上忍の成長マン!!SP芸能人の自宅に突撃!(秘)掃除&調理グッズで驚きのワザ見せます!!』
というのやっていて、その中で掃除関連グッズが紹介されていて、気になったもののメモです。
まず、教えマンで登場していたお二方。
1. Amazon.co.jp: 茂木和哉 水垢洗剤 200mL 鏡 ウロコ カルキ: ヘルス&ビューティー
頻出商品。水垢対策。ラップ使ってゴシゴシしてたのだが、ラップだと洗剤の浸透が無い為いいらしい。
8. Amazon.co.jp: お願いだから5日間待って 排水口用 20g*2個: ヘルス&ビューティー
排水溝対策。商品名...
他にもキッチングッズとかありましたので、調べたい方は以下のリンクから探してみてください。
参考:
価格.com - 「坂上忍の成長マン!! 〜SP芸能人の自宅に突撃!(秘)掃除&調理グッズで驚きのワザ見せます!!〜」2015年5月9日(土)放送内容 | テレビ紹介情報
P.S.
普段イオン系列のスーパーにお世話になってるのですが、最近気になった商品があったので、なんとなく載せておきます。
productionでhttpsにしたい
こんばんは。
Laravel5で開発をしており、ついに本番反映じゃ!
で、大ゴケしました。orz
development環境ではhttpでも、本番環境でssl設定してhttpsのみってよくあることかと思います。
localで開発しているときに、本番環境のこと忘れて、
<?php asset('/css/app.css') url('/users/show/{user_id?}') action('HomeController@index')
とかやりませんか?
secure_url もあるのですが、いつもhttpsするわけではないし...
assetやurl メソッドの引数に$secure = trueに指定すればいけそうな気がするが、リファクタする箇所が...
そこで、URL#forceSchemaを使います。
app/Http/routes.php の最初に以下のコードいれます。
<?php if (app()->environment('production')) { URL::forceScheme('https'); } ...
これで、production環境下で全部httpsになりました!(よね?)
小ネタ
こんにちは。
laravelのartisanって便利ですよね!
seederとかもテストに欠かせない!
同じクラス名なんだけど、backupとっときたいとか、違うケースのseederつかいたいってときに、おきまりのnamespaceで解決!
例えば、database/seeds/TestTableSeeder となるものを、database/seeds/Backup/TestTableSeeder へ移動し、
TestTableSeederにnamespace Backupを追加
<?php namespace Backup; class TestTableSeeder extends Seeder { ... }
このSeederを使いたい時、
php artisan db:seed --class=Backup\\TestTableSeeder
ドキュメントには、seeds直下のサンプルしかなかったけど、
完全修飾名で呼べるんですね。(バックスラッシュ2こがポイント)
当たり前といえば当たり前だけど、まー便利ですね!
新規パッケージの追加
コンニチハ。
今、誰しもが使っているLaravelをこの度使ってみました。
で、早速packagistから使いたいライブラリをcomposer.jsonに追加してupdateしようとしました。
。。。!?
composer.pharがない!
。。。そうだ!京都へ帰ろう。
そもそもlaravelをインストールするときにcomposer.pharつかってたやないか!
なので、プロジェクトルートで
composer update
でオッケーだったっていうw
お恥ずかしい話でした。
orz
◯alaxy S4の罠?
オワリークリスマス。
DialogFragmentでバックキーとか、黒背景タップでキャンセルするときに、
Dialog#setCancelable(false)ではなくて、DialogFragment#setCancelable(false)的な話はあるあるです。
これで全て解決してくれるものだと、勝手に思ってたんですが、現実そんな甘くなかったでした。
◯alaxy S4だけねw
@Override public Dialog onCreateDialog(Bundle savedInstanceState) { setCancelable(false); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); ... return builder.create(); }
よく上記のコードで終了するケースがあると思うのですが、S4では一味加えます。
@Override public Dialog onCreateDialog(Bundle savedInstanceState) { setCancelable(false); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); ... Dialog dialog = builder.create(); dialog.setCanceledOnTouchOutside(true);// <- ココ重要 return dialog; }
端末によって初期値ちゃうんですね。。
以上。