內容簡介
這款WordPress外掛提供了一個簡單的方法,保障多站台和常規WordPress安裝的登入安全性。功能如下:
阻擋地毯式攻擊和字典攻擊,不會給真正用戶或管理員帶來任何不便。
追蹤IP地址、用戶名和密碼。
監視通過表格提交、XML-RPC請求和認證cookie進行的登錄。
如果登入失敗使用了過去失敗的相同數據,插件會減緩響應時間。失敗次數越多,延遲越長。這樣可限制攻擊者有效探測您的網站,因此他們會放棄並尋找更容易的目標。
如果出現帳戶被入侵的情況,"用戶"立即被登出並被強制使用WordPress的密碼重置工具,從而防止任何損害並驗證用戶身份。但是,如果用戶從他們過去使用過的IP地址登入,插件會自動發送電子郵件給用戶,確保該用戶登入了。所有這些都不需要管理員進行干預。
能夠通知管理員攻擊和入侵。
支持IPv6。
徹底檢查並強制實施密碼強度。如果啟用PHP的mbstring擴展,則包括完整的UTF-8字符集支持。檢測可以檢測到當前所有密碼詞典。例如:
最小長度(可自訂)
不與博客信息匹配
不與用戶數據匹配
必須具有數字、標點符號、大寫和小寫字符或非常長。注意:只包含一種大小寫的字母表(例如阿拉伯語、希伯來語等)自動豁免大小寫要求。
非順序代碼點
非順序 keystrokes(可添加自定義序列文件)
未在您提供的密碼詞典文件中找到密碼/短語
解碼“leet” speak
密碼/短語未被 dict 字典程序找到(如果可用)
阻擋通過“?author=”查詢字串發現用戶名。
密碼老化(選項)(不建議)。
用戶需要每x天更改一次密碼(可自訂)
選擇新密碼的寬限期(可自訂)
記住舊密碼(數量可自訂)
管理員可以要求所有用戶更改他們的密碼。
通過每個用戶的數據庫條目中的標誌完成。
不發送任何郵件,使您的服務器遠離垃圾郵件列表。
登錄閒置會話(選項)(閒置時間可自訂)。
維護模式(選項)。
公開可見的內容仍然可見。
停用所有用戶的登錄,除了管理員。
登出所有現有的會話,除了管理員。
停用發布評論。
用於維護或緊急情況。
這是與WordPress維護模式分開的模式。
防止登錄失敗的信息洩露。
優於類似WordPress插件的改進功能:
支持多站台網絡
監視認證cookie以防止錯誤的用戶名和哈希
跟踪來自XML-RPC請求的登錄
外掛標籤
開發者團隊
📦 歷史版本下載
原文外掛簡介
A simple way to lock down login security for multisite and regular
WordPress installations.
Blocks brute force and dictionary attacks without inconveniencing
legitimate users or administrators
Tracks IP addresses, usernames, and passwords
Monitors logins made by form submissions, XML-RPC requests and
auth cookies
If a login failure uses data matching a past failure, the plugin
slows down response times. The more failures, the longer the delay.
This limits attackers ability to effectively probe your site,
so they’ll give up and go find an easier target.
If an account seems breached, the “user” is immediately logged out
and forced to use WordPress’ password reset utility. This prevents
any damage from being done and verifies the user’s identity. But
if the user is coming in from an IP address they have used in the
past, an email is sent to the user making sure it was them logging in.
All without intervention by an administrator.
Can notify the administrator of attacks and breaches
Supports IPv6
Thoroughly examines and enforces password strength. Includes full
UTF-8 character set support if PHP’s mbstring extension is enabled.
The tests have caught every password dictionary entry I’ve tried.
Minimum length (customizable)
Doesn’t match blog info
Doesn’t match user data
Must either have numbers, punctuation, upper and lower case characters
or be very long. Note: alphabets with only one case (e.g. Arabic,
Hebrew, etc.) are automatically exempted from the upper/lower case
requirement.
Non-sequential codepoints
Non-sequential keystrokes (custom sequence files can be added)
Not in the password dictionary files you’ve provided (if any)
Decodes “leet” speak
The password/phrase is not found by the dict dictionary
program (if available)
Blocks discovering user names via the “?author=” query string
Password aging (optional) (not recommended)
Users need to change password every x days (customizable)
Grace period for picking a new password (customizable)
Remembers old passwords (quantity is customizable)
Administrators can require all users to change their passwords
Done via a flag in each user’s database entry
No mail is sent, keeping your server off of spam lists
Logs out idle sessions (optional) (idle time is customizable)
Maintenance mode (optional)
Publicly viewable content remains visible
Disables logins by all users, except administrators
Logs out existing sessions, except administrators
Disables posting of comments
Useful for maintenance or emergency reasons
This is separate from WordPress’ maintenance mode
Prevents information disclosures from failed logins
Improvements Over Similar WordPress Plugins
Multisite network support
Monitors authentication cookies for bad user names and hashes
Tracks logins from XML-RPC requests
Adjusts WordPress’ password policy user interfaces
Takes security seriously so the plugin itself does not open your site
to SQL, HTML, or header injection vulnerabilities
Notice-free code means no information disclosures if display_errors
is on and error_reporting includes E_NOTICE
Only loads files, actions, and filters needed for enabled options
and the page’s context
Provides an option to have deactivation remove all of this plugin’s
data from the database
Uses WordPress’ features rather than fighting or overriding them
No advertising, promotions, or beacons
Proper internationalization support
Clean, documented code
Unit tests covering 100% of the main class
Internationalized unit tests
For reference, the similar plugins include:
6Scan Security
Better WP Security
Enforce Strong Password
Force Strong Passwords
Limit Login Attempts
Login Lock
Login LockDown
PMC Lockdown
Simple Login Lockdown
Wordfence Security
WP Login Security
WP Login Security 2
Compatibility with Other Plugins
Some plugins provide similar functionality. These overlaps can lead to
conflicts during program execution. Please read the FAQ!
Translations
Deutsche, Deutschland (German, Germany) (de_DE) by Christian Foellmann
Français, français (French, France) (fr_FR) by mermouy and and Fx Bénard
Italiano, Italia (Italian, Italy) (it_IT) by Daniele Passalacqua
日本語, 日本国 (Japanese, Japan) (ja_JP) by motoyamayuki
Nederlands, Nederland (Dutch, Netherlands) (nl_NL) by Friso van Wieringen
polski, Polska (Polish, Poland) (pl_PL) by Michał Seweryniak miniol
Português, Brasil (Portugese, Brazil) (pt_BR) by Valdir Trombini
suomi, Suomi (Finnish, Finland) (fi_FI) by Juha Remes Newman101
Source Code, Bugs, and Feature Requests
Development of this plugin happens on
GitHub.
Please submit
bug and feature requests,
pull requests,
wiki entries
there.
Releases are then squashed and pushed to WordPress’
Plugins SVN repository.
This division is necessary due having being chastised that “the Plugins SVN
repository is a release system, not a development system.”
Old tickets are in the Plugins Trac.
Strong, Unique Passwords Are Important
Yeah, creating, storing/remembering, and using a different, strong
password for each site you use is a hassle. But it is absolutely
necessary.
Password lists get stolen on a regular basis from big name sites (like
Linkedin for example!). Criminals then have unlimited time to decode the
passwords. In general, 50% of those passwords are so weak they get figured
out in a matter of seconds. Plus there are computers on the Internet
dedicated to pounding the sites with login attempts, hoping to get lucky.
Many people use the same password for multiple sites. Once an attacker
figures out your password on one site, they’ll try it on your accounts at
other sites. It gets ugly very fast.
But don’t despair! There are good, free tools that make doing the right
thing a piece of cake. For example: KeePassX,
KeePass,
or 1Password
Securing Your WordPress Site is Important
You’re probably thinking “There’s nothing valuable on my website. No one
will bother breaking into it.” What you need to realize is that attackers
are going after your visitors. They put stealth code on your website
that pushes malware into your readers’ browsers.
According to SophosLabs more than 30,000 websites are infected
every day and 80% of those infected sites are legitimate.
Eighty-five percent of all malware, including viruses, worms,
spyware, adware and Trojans, comes from the web. Today,
drive-by downloads have become the top web threat.
— Security Threat Report 2012
So if your site does get cracked, not only do you waste hours cleaning up,
your reputation gets sullied, security software flags your site as dangerous,
and worst of all, you’ve inadvertently helped infect the computers of your
clients and friends. Oh, and if the attack involves malware, that malware
has probably gotten itself into your computer.
Actions
login_security_solution_insert_fail
login_security_solution_notify_breach
login_security_solution_notify_fail
login_security_solution_fail_tier_dos
Filters
The following filters allow customizing email subjects and messages. If
either the “subject”or “message” filters in a method returns an empty
string, the given method will skip calling wp_mail().
login_security_solution_notify_breach_subject
login_security_solution_notify_breach_message
login_security_solution_notify_breach_user_subject
login_security_solution_notify_breach_user_message
login_security_solution_notify_fail_subject
login_security_solution_notify_fail_message
Unit Tests
A thorough set of unit tests are found in the tests directory.
The plugin needs to be installed and activated before running the tests.
To execute the tests, cd into this plugin’s directory and
call phpunit tests
Translations can be tested by changing the WPLANG value in wp-config.php.
Please note that the tests make extensive use of database transactions.
Many tests will be skipped if your wp_options and wp_usermeta tables
are not using the InnoDB storage engine.
Removal
This plugin offers the ability to remove all of this plugin’s settings
from your database. Go to WordPress’ “Plugins” admin interface and
click the “Settings” link for this plugin. In the “Deactivate” entry,
click the “Yes, delete the damn data” button and save the form.
Use WordPress’ “Plugins” admin interface to click the “Deactivate” link
Remove the login-security-solution directory from the server
In the event you didn’t pick the “Yes, delete the damn data” option or
you manually deleted the plugin, you can get rid of the settings by running
three queries. These queries are exapmles, using the default table name
prefix of, wp_. If you have changed your database prefix, adjust the
queries accordingly.
DROP TABLE wp_login_security_solution_fail;
DELETE FROM wp_options WHERE option_name LIKE 'login-security-solution%';
DELETE FROM wp_usermeta WHERE meta_key LIKE 'login-security-solution%';= Inspiration and References =
Password Research
Why passwords have never been weaker — and crackers have never been stronger, Dan Goodin
You can never have too many passwords: techniques for evaluating a huge corpus, Joseph Bonneau
Analyzing Password Strength, Martin Devillers
Consumer Password Worst Practices, Imperva
Preventing Brute Force Attacks on your Web Login, Bryan Rite
Password Strength, Randall Munroe
Technical Info
The Extreme UTF-8 Table, infosnel.nl
A Recommendation for IPv6 Address Text Representation, Seiichi Kawamura and Masanobu Kawashima
Password Lists
Dazzlepod Password List, Dazzlepod
Common Passwords, Fravia
The Top 500 Worst Passwords of All Time, Mark Burnett
To Do
Provide a user interface to the fail table.
