無料ブログ「rentafree.net」の管理人ブログ

不正アクセスに対する自動防御を強化しました

今まではログインエラーが発生すると、端末が10秒間ブロックされる仕組みになっていましたが、
IPアドレスを変えてアタックされた場合の対策として、
ログインエラーが多発すると全ユーザーのログインをブロックする仕組みを導入しました。

発動条件は、
SSLログインの場合、100秒間に50回ログインエラーが発生している場合に発動して、その時だけブロック。
トップページログインの場合、100秒間に100回ログインエラーが発生した場合に発動して、そのプロセスは以後100秒間ログイン不可。
となります。

メールアドレスとパスワードによるログインの際だけ影響し、
セッションによるログインには影響しません。

トップページログインは常駐マルチプロセスなため、
プロセスごとに解除時刻が違います。


XML-RPCの方はまだ導入していませんが、
今日にでも導入すると思います。

ワンタイム認証を実装しました

ワンタイム認証を実装しました。
SSLログインページから、
「ワンタイム認証を利用する」
をチェックしてログインすると機能が利用できます。

ワンタイム認証は安全性を高めるために使われることが多いと思いますが、
この機能は、セキュリティーの制限を緩めるためのもので、
機能を利用しないほうが安全です。


今までは、
メールアドレスとパスワードでログインした際にセッションIDを発行し、
セッションIDとIPアドレスが一致した場合にセッションが有効として認証されていました。

今回実装したワンタイム認証機能を利用すると、
1時間有効なワンタイムパスワードを発行し、
セッションIDと有効期間内のワンタイムパスワードが一致した場合は、
IPアドレスの確認なしにセッションが維持できます。

これにより、グローバルIPが提供されないプロバイダでもログインが可能になります。

ワンタイムパスワードはワンタイムパスワードによりセッションが承認された場合に有効期限が1時間となりますが、
SSLページでログインによりリダイレクトされた先で発行されます。
その際のログインからリダイレクトの間かつ10秒間はセッションIDのみで認証されます。