This repository has been archived by the owner on Mar 1, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 20
/
readme.txt
1252 lines (1057 loc) · 93.4 KB
/
readme.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
=== Wordfence Security ===
Contributors: mmaunder
Tags: wordpress, security, performance, speed, caching, cache, caching plugin, wordpress cache, wordpress caching, wordpress security, security plugin, secure, anti-virus, malware, firewall, antivirus, virus, google safe browsing, phishing, scrapers, hacking, wordfence, securty, secrity, secure, two factor, cellphone sign-in, cellphone signin, cellphone, twofactor, security, secure, htaccess, login, log, users, login alerts, lock, chmod, maintenance, plugin, private, privacy, protection, permissions, 503, base64, injection, code, encode, script, attack, hack, hackers, block, blocked, prevent, prevention, RFI, XSS, CRLF, CSRF, SQL Injection, vulnerability, website security, WordPress security, security log, logging, HTTP log, error log, login security, personal security, infrastructure security, firewall security, front-end security, web server security, proxy security, reverse proxy security, secure website, secure login, two factor security, maximum login security, heartbleed, heart bleed, heartbleed vulnerability, openssl vulnerability, nginx, litespeed, php5-fpm, woocommerce support, woocommerce caching, IPv6, IP version 6
Requires at least: 3.9
Tested up to: 4.2.3
Stable tag: 6.0.15
The Wordfence WordPress security plugin provides free enterprise-class WordPress security, protecting your website from hacks and malware.
== Description ==
= THE MOST DOWNLOADED WORDPRESS SECURITY PLUGIN =
Wordfence starts by checking if your site is already infected. We do a deep server-side scan of your source code comparing it to the Official WordPress repository for core, themes and plugins. Then Wordfence secures your site and makes it up to 50 times faster.
Wordfence Security is 100% free and open source. We also offer a Premium API key that gives you Premium Support, Country Blocking, Scheduled Scans, Password Auditing and we even check if your website IP address is being used to Spamvertize. [Click here to sign-up for Wordfence Premium now](http://www.wordfence.com/?utm_source=repo&utm_medium=web&utm_campaign=pluginDescCTA) or simply install Wordfence free and start protecting your website.
You can find our official documentation at [docs.wordfence.com](http://docs.wordfence.com/?utm_source=repo&utm_medium=web&utm_campaign=pluginDesc) and our Frequently Asked Questions on our support portal at [support.wordfence.com](https://support.wordfence.com/solution/categories/1000023037/folders/1000035543?utm_source=repo&utm_medium=web&utm_campaign=pluginDesc). We are also active in our community support forums on [wordpress.org](https://wordpress.org/support/plugin/wordfence) if you are one of our free users. Our Premium Support Ticket System is at [support.wordfence.com](https://support.wordfence.com/?utm_source=repo&utm_medium=web&utm_campaign=pluginDesc).
This is a brief introductory video for Wordfence:
[vimeo http://vimeo.com/134150724]
Wordfence Security is now Multi-Site compatible and includes Cellphone Sign-in which permanently secures your website from brute force hacks.
= WORDFENCE WORDPRESS SECURITY FEATURES =
= Blocking Features =
* Real-time blocking of known attackers. If another site using Wordfence is attacked and blocks the attacker, your site is automatically protected.
* Block entire malicious networks. Includes advanced IP and Domain WHOIS to report malicious IP's or networks and block entire networks using the firewall. Report security threats to network owner.
* Rate limit or block security threats like aggressive crawlers, scrapers and bots doing security scans for vulnerabilities in your site.
* Choose whether you want to block or throttle users and robots who break your security rules.
* Premium users can also block countries and schedule scans for specific times and a higher frequency.
= Login Security =
* Sign-in using your password and your cellphone to vastly improve login security. This is called Two Factor Authentication and is used by banks, government agencies and military world-wide for highest security authentication.
* Includes two-factor authentication, also referred to as cellphone sign-in.
* Enforce strong passwords among your administrators, publishers and users. Improve login security.
* Checks the strength of all user and admin passwords to enhance login security.
* Includes login security to lock out brute force hacks and to stop WordPress from revealing info that will compromise security.
= Security Scanning =
* Scans for the HeartBleed vulnerability - included in the free scan for all users.
* Scans core files, themes and plugins against WordPress.org repository versions to check their integrity. Verify security of your source.
* See how files have changed. Optionally repair changed files that are security threats.
* Scans for signatures of over 44,000 known malware variants that are known security threats.
* Scans for many known backdoors that create security holes including C99, R57, RootShell, Crystal Shell, Matamu, Cybershell, W4cking, Sniper, Predator, Jackal, Phantasma, GFS, Dive, Dx and many many more.
* Continuously scans for malware and phishing URL's including all URL's on the Google Safe Browsing List in all your comments, posts and files that are security threats.
* Scans for heuristics of backdoors, trojans, suspicious code and other security issues.
= WordPress Firewall =
* Includes a firewall to block common security threats like fake Googlebots, malicious scans from hackers and botnets.
= Monitoring Features =
* See all your traffic in real-time, including robots, humans, 404 errors, logins and logouts and who is consuming most of your content. Enhances your situational awareness of which security threats your site is facing.
* A real-time view of all traffic including automated bots that often constitute security threats that Javascript analytics packages never show you.
* Real-time traffic includes reverse DNS and city-level geolocation. Know which geographic area security threats originate from.
* Monitor your DNS security for unauthorized DNS changes.
* Monitors disk space which is related to security because many DDoS attacks attempt to consume all disk space to create denial of service.
= Multi-Site Security =
* Wordfence Security for multi-site also scans all posts and comments across all blogs from one admin panel.
* WordPress Multi-Site (or WordPress MU in the older parlance) compatible.
= Caching Features =
* Includes Falcon Engine, the fastest WordPress caching engine available today. Falcon is faster because it reduces your web server disk and database activity to a minimum.
* Wordfence includes two caching modes for compatability and has cache management features like the ability to clear the cache and monitor cache usage.
= IPv6 Compatible =
* Fully IPv6 compatible including all whois lookup, location, blocking and security functions.
= Major Theme and Plugins Supported =
* Includes support for other major plugins and themes like WooCommerce.
The Wordfence WordPress security plugin is full-featured and constantly updated by our team to incorporate the latest security features and to hunt for the newest security threats to your WordPress website.
== Installation ==
To install the Wordfence WordPress security plugin and start protecting your WordPress website:
1. Install Wordfence Security automatically or by uploading the ZIP file.
1. Activate the security plugin through the 'Plugins' menu in WordPress.
1. Wordfence WordPress Security is now activated. Go to the scan menu and start your first security scan. Scheduled security scanning will also be enabled.
1. Once your first scan has completed a list of security threats will appear. Go through them one by one to secure your site.
1. Visit the Wordfence Security options page to enter your email address so that you can receive email security alerts.
1. Optionally change your security level or adjust the advanced options to set individual security scanning and protection options for your site.
1. Click the "Live Traffic" menu option to watch your site activity in real-time. Situational awareness is an important part of website security.
To install the Wordfence WordPress security plugin on WordPress Multi-Site installations:
1. Install Wordfence Security via the plugin directory or by uploading the ZIP file.
1. Network Activate Wordfence Security. This step is important because until you network activate it, your sites will see the plugin option on their plugins menu. Once activated that option dissapears.
1. Now that Wordfence is network activated it will appear on your Network Admin menu. Wordfence Security will not appear on any individual site's menu.
1. Go to the "Scan" menu and start your first security scan.
1. Wordfence Security will do a security scan of all files in your WordPress installation including those in the blogs.dir directory of your individual sites.
1. Live Traffic will appear for ALL sites in your network. If you have a heavily trafficked system you may want to disable live traffic which will stop logging to the DB.
1. Firewall rules and login rules apply to the WHOLE system. So if you fail a login on site1.example.com and site2.example.com it counts as 2 failures. Crawler traffic is counted between blogs, so if you hit three sites in the network, all the hits are totalled and that counts as the rate you're accessing the system.
== Frequently Asked Questions ==
[Visit our support website which contains a FAQ and knowledgebase which is more comprehensive and updated frequently.](http://support.wordfence.com/?utm_source=repo&utm_medium=web&utm_campaign=pluginDesc)
= What does Wordfence Security do that other WordPress security plugins don't do? =
* Wordfence Security is the only WordPress security plugin that is fully integrated with it's own high speed caching engine to avoid security and caching conflicts.
* Wordfence Security actually verifies your website source code integrity against the official WordPress repository and shows you the changes. We are the only plugin to do this.
* Wordfence Security provides two-factor authentication (Cellphone Sign-in) for paid members. We're the first plugin to offer this.
* Wordfence Security fully supports IPv6 including giving you the ability to look up the location of IPv6 addresses, block IPv6 ranges, detect IPv6 country and do a whois lookup on IPv6 addresses and more.
* Wordfence Security includes protection against DDoS attacks by giving you a performance boost up to 50X.
* Wordfence Security scans check all your files, comments and posts for URL's in Google's Safe Browsing list. We are the only plugin to offer this very important security enhancement.
* Wordfence Security scans do not consume large amounts of your precious bandwidth because all security scans happen on your web server which makes them very fast.
* Wordfence Security fully supports WordPress Multi-Site which means you can security scan every blog in your Multi-Site installation with one click.
* Wordfence Security includes Two-Factor authentication, the most secure way to stop brute force attackers in their tracks.
= Does Wordfence Security support Multi-Site installations? =
Yes. WordPress MU or Multi-Site as it's called now is fully supported. Using Wordfence Security you can security scan every blog in your network with one click. If one of your customers posts a page or post with a known malware URL that threatens your whole domain with being blacklisted by Google, we will tell you within a maximum of one hour which is how often scans occur.
= Will Wordfence Security slow my site down? =
No. Actually it will make your site up to 50X faster when Falcon Engine is enabled, up to 30 times faster with our PHP caching engine and even
without caching Wordfence is extremely fast and uses techniques like caching it's own configuration data to avoid database lookups. Older
versions of Wordfence did incur a slight performance penalty, but we have not only fixed this issue but knocked it out of the park. Wordfence
now makes your site faster than any other caching plugin available!!
= How often is Wordfence Security updated? =
The Wordfence Security plugin is frequently updated and we update the code on our security scanning servers
more frequently. Our cloud servers are continually updated with the latest known security threats and vulnerabilities so
that we can blog any security threat as soon as it emerges in the wild.
= What if I need support? =
All our paid customers receive priority support. Excellent customer service is a key part
of being a Wordfence Security member. As free or Premium member can visit [support.wordfence.com](http://support.wordfence.com/?utm_source=repo&utm_medium=web&utm_campaign=pluginDesc) and where you will find out knowledgebase. If you're a Premium member you can also open a support ticket.
= Can I disable certain security features of Wordfence Security? =
Yes! Simply visit the Options page, click on advanced options and enable or disable the security features you want.
= What if my site security has already been compromised by a hacker? =
Wordfence Security is the only WordPress security plugin that is able to repair core files, themes and plugins on sites where security is already compromised.
However, please note that site security can not be assured unless you do a full reinstall if your site has been hacked. We recommend you only
use Wordfence Security to get your site into a running state in order to recover the data you need to do a full reinstall. A full reinstall is the only
way to ensure site security once you have been hacked.
= How will I be alerted that my site has a security problem? =
Wordfence Security sends security alerts via email. Once you install Wordfence Security, you will configure a list of email addresses where security alerts will be sent.
When you receive a security alert, make sure you deal with it promptly to ensure your site stays secure.
= My WordPress site is behind a firewall. Doesn't that make it secure? =
If your site is accessible from the web, it means that people you don't know can execute PHP code on your site.
They have to be able to execute PHP code, like the core WordPress code, in order for your site to work.
Most WordPress security threats allow a hacker to execute PHP code on your website. The challenge hackers
face is how to get their malicious PHP code onto your site to compromise your security. There
are many upload mechanisms that WordPress itself, themes and plugins offer and the vast majority of these
are secure. However, every now and then a hacker discovers an upload mechanism that is not secure or
a way of fooling your site into allowing an upload. That is usually when security is compromised. Even
though your site is behind a commercial firewall, it still accepts web requests that include uploads and executes PHP code
and as long as it does that, it may become face a security vulnerability at some point.
= Will Wordfence Security protect me against the Timthumb security problem? =
The timthumb security exploit occurred in 2011 and all good plugins and themes now use an updated
version of timthumb (which the creator of Wordfence Security wrote and donated to the timthumb author) which closes the security hole that
caused the problem. However we do scan for old version of timthumb for good measure to make sure they don't
cause a security hole on your site.
= Does Wordfence Security support IPv6? =
Most definitely! As of Wordfence version 6.0.1 we fully support IPv6 with all security functions including country blocking, range blocking,
city lookup, whois lookup and all other security functions. If you are not running IPv6 Wordfence will work great on your site too. We are
fully compatible with both IPv4 and IPv6 whether you run both or only one addressing scheme.
== Screenshots ==
1. The home screen of Wordfence Security where you can see a summary, manage security issues and do a manual security scan.
2. The Live Traffic view of Wordfence Security where you can see real-time activity on your site.
3. The "Blocked IPs" page where you can manage blocked IP's, locked out IP's and see recently throttled IPs that violated security rules.
4. The basic view of Wordfence Security options. There is very little to configure other than your alert email address and security level.
5. If you're technically minded, this is the under-the-hood view of Wordfence Security options where you can fine-tune your security settings.
== Changelog ==
= 6.0.15 =
* Fix: Resolved issue with GoogleBot being erroneously flagged as human in Live Traffic.
* Fix: Added better handling of human/bot detection.
* Improvement: Verified humans are flagged via cookie to prevent false positives.
= 6.0.14 =
* Fix: Live Traffic endpoint moved to site root to prevent issues with GoogleBot.
= 6.0.12 =
* Improvement: Updated local GeoIP database.
* Improvement: Updated local browser data cache to support newer browsers and user-agents.
* Improvement: Added option to exclude URLs from 404 throttling, and included some common 404s.
* Improvement: Added new branded logos.
* Fix: Fixed bug with live traffic ajax call being indexed by Google.
= 6.0.11 =
* Improvement: Updated local GeoIP database to July version.
* Improvement: Updated local browser data cache to support newer browsers and user-agents.
* Fix: Hooked up network ranges in CIDR format (192.168.0.0/16) in Whois to support data coming back from whois that includes CIDR network format.
* Fix: Fixed 2 PHP notices in wfUtils.
= 6.0.10 =
* Improvement: Removed locked out IPs from locked out list when permanently blocking all locked out IPs.
* Improvement: Added admin-configured blocked IPs and blocked network ranges to import/export.
* Fix: Fixed PHP warnings in activity report where an array is not returned.
* Fix: Fixed PHP notice in IP spam check portion of scan.
= 6.0.9 =
* Fix: Fixed bug in Live Traffic where v5 style blocked ranges generated PHP warning breaking the JSON response.
* Fix: Fixed invalid date bug in Live Traffic: Top Consumers and Top 404s.
* Fix: Fixed edge case bug with author=N scans redirecting to author archives page.
= 6.0.8 =
* Improvement: Added the local time stamp to 'time since' labels in Live Traffic and Blocked IPs pages.
* Improvement: Added a check to prompt the admin to download a backup copy of the wp-config.php in the event it's flagged as containing malware.
* Improvement: Added option in Live Traffic to remove a blocked network range defined in Advanced Blocking in the Live Traffic feed for IPs within that range.
* Improvement: Added option to permanently block all IPs that are currently temporarily blocked or locked out from the Blocked IPs page.
* Improvement: Updated local GeoIP database.
* Fix: Fixed double forward slash in file path in the 'View the File' action of malicious code scan.
* Fix: Fixed notice in block IP JSON callback.
= 6.0.7 =
* Fix: Fixed bug with Top 5 Logins displaying all failed logins opposed to timeframe set by email frequency.
* Fix: Fixed bug with /?author=N scan protection not working for authors with no published posts.
* Improvement: Fixed Wordfence logo width in dashboard widget on smaller screens.
* Improvement: Added country names to flag icons in widget dashboard.
* Improvement: Updated issues email to use WordPress' charset instead of ISO-8859-1.
* Improvement: Added check to see if premium API key is set to auto-renew and send email reminder prior to renewal.
* Improvement: Updated to API version 2.17.
* Improvement: Changed auto-renew reminder email to go out 10 days before renewal, 12 days before expiration.
= 6.0.6 =
* Improvement: Handled uncaught exception when noc1 is not available in 2FA.
* Improvement: Fixed issue with limit-logins mu-plugin on GoDaddy counting first login attempt in 2FA against total allowed login attempts.
* Fix: Fixed bug with IPs not resolving to countries when printable IP passed to logBlockedIP.
* Fix: Fixed issue with free users country blocking redirects working after downgrade.
* Fix: Encoded URL field in country blocking options.
* Fix: Added a check to verify field has not already been altered prior to calling ALTER in runInstall.
* Fix: Fixed issue with scan_options method being called after method has been removed.
* Fix: Fixed bug in scan when dns_get_record fails and error condition was not handled.
* Fix: Fixed PHP notice when 'Crawler' not included in browser pcap result.
= 6.0.5 =
* Fix: Removed anonymous function to ensure PHP 5.2 compatability.
= 6.0.4 =
* Improvement: Added option to disable SSL verification for hosts that have outdated versions cURL.
* Improvement: Added default of 127.0.0.1 when $_SERVER['REMOTE_ADDR'] is not set. Helps if you're running WordPress cron from Linux cron.
* Improvement: Added compatability with Godaddy's MU (must use) limit login plugin and our two factor. Change makes sure you can see the message from Wordfence to enter your cellphone code.
* Improvement: Added direction: ltr; to admin pages.
* Improvement: Added focus/blur events to scan activity log ajax to improve server performance.
* Improvement: Merged wp_option charset and database vulnerability scans to improve performance and make UI more intuitive.
* Improvement: Opened 'See recent traffic' in a new window from the Live Traffic page.
* Improvement: Updated browser pcap cache file for compatibility with detecting newer Firefox browsers.
* Fix: Fixed bug in directories excluded from scans (escaped directory separator).
* Fix: Updated known files and outdated plugins/themes to use wp_get_themes.
* Fix: Fixed bug with wfScanEngine where scans forked between scan_database_main and scan_database_finish would not display results of database scan.
* Fix: Added return false; to wfScan::error_handler to allow default error handler to process error.
* Fix: Fixed notice with wfUserIPRange::isValidIPv4Range.
* Fix: Fixed bug with 'Allow HTTPS pages to be cached' setting being unset after saving options.
* Fix: Fixed a couple of typos and spelling.
* Fix: Fixed errors upon plugin activation where wfConfig was queried before it was created.
* Fix: Fixed issue with notices from serializing wordfenceDBScanner and private properties belonging to parent class.
= 6.0.3 =
* Fix: Fix for hosts that don't have IPv6 compiled into PHP (which is rare) we not manually define certain functions.
= 6.0.2 =
* Fix: Fixed an issue with the schema not updating when customers migrate to IPv6 schema to store IP's.
* Improvement: Added additional safety checks during the schema update.
= 6.0.1 =
* Feature: IPv6 fully supported. This includes whois, range blocking, IPv6 city lookup in live traffic, country blocking and all other security functions. See www.wordfence.com/blog/ for more info.
* Feature: New scanning routine examines the wp_options table for executable code based on a new infection we are seeing that is well hidden.
* Improvement: Prevent Googlebot from being blocked if user has configured a banned URL and Google tries to crawl it.
* Improvement: Improved detection for additional Google crawlers especially if an IP PTR resolves to a .googlebot.com domain.
* Fix: Fixed bug with https:// URLs not allowed in country blocking.
* Fix: Fixed typos.
= 5.3.12 =
* Fix: Wordfence no longer can appear on sub-sites on multi-site installs, only on the network admin panel.
* Fix: Wordfence dashboard widget only can appear on network admin dashboard in multi-site installs.
* Fix: No more multiple scheduled scans on multi-site.
* Fix: Fixed mixed-protocol warning if you're using SSL and Wordfence - our static assets are loaded without specifying protocol now.
* Fix: Fixed issue where non-existent users were shown in dashboard widget and email summary as valid users.
* Fix: Removed /e modifier in preg_replace for Diff_Renderer_Html_Array::formatLines since it is deprecated in PHP 5.5.
* Fix: Removed ssl_verify => false from wp_remote_post connectivity test since some versions of cURL will throw an error since WordPress uses their own certificate bundle.
* Fix: Fixed bug with activity report email date range (was one week ahead).
* Fix: Removed email summary report from cron on deactivation.
* Fix: Fixed an off-by-one bug in wfDirectoryIterator for maximum total files and max files per directory.
* Fix: Updated our browser data to fix an issue that caused newer browsers to appear in live traffic with version 0.0.
* Improvement: Updated the country database used for country blocking to April 2015 version.
* Improvement: Added an additional check for disabling script execution in the uploads directory that the .htaccess file actually contains our protection code before removing it.
* Improvement: Paused Live Traffic ajax request when the window/document loses focus to reduce server load.
* Improvement: Better error handling when making API calls to noc1 to help our support personell help you.
* Improvement: Added locked out IP's and IP's restricted through advanced blocking to the blocked IP log for dashboard and email summary.
* Improvement: Excluded whitelisted IP's from dashboard and widget email summary.
= 5.3.11 =
* Fix: Dasboard widget no longer appearing for all users.
= 5.3.10 =
* Fix: Removed .htaccess file the previous release created in wfcache directory that caused problems.
= 5.3.9 =
* Premium Feature: Password Auditing. Audit the strength of your admin and user-level passwords against our GPU based auditing cluster. Easily alert users to weak passwords or force a password change.
* Feature: Activity email summary. See options page to enable a weekly, bi-weekly or monthly activity summary.
* Feature: Activity summary dashboard widget.
* Fix: Fixed bug on plugin activation where the configuration table was being queried before it was created.
* Improvement: Added .htaccess to wfcache directory.
* Improvement: Switched to using wp_remote_post for Wordfence cloud API calls to improved SSL support and a more standards based approach.
= 5.3.8 =
* Customers running WP versions older than 3.9 don't support wp_normalize_path(). Added support for older WP versions to fix an error being thrown.
= 5.3.7 =
* Improvement: Updated country blocking database to the newest version (March 2015)
* Improvement: Added detection for many new samples we received (thanks all!) including a nasty polymorphic infection.
* Fix: Changed the way we find the plugin directory to fix a possible issue that would cause alerts to return blank plugin names.
* Fix: Improved Nginx detection so that we don't accidentally detect Nginx if you're running Apache.
= 5.3.6 =
* Feature: You can now block POST requests to your WordPress site that have an empty User-Agent and Referer header. This is a common pattern among badly written brute force bots.
* Feature: Added cron viewer at bottom of Wordfence options page. The plugin we were using to help diagnose customer issues is broken. Use this instead.
* Feature: Added DB table viewer at bottom of Wordfence options page. This is a read-only utility to view table names and detailed status. Also for customer diagnostic purposes.
* Improvement: Code cleanup after in-depth code analysis. Removed unused functions and variables and re-indented selected code.
* Fix: Fixed issue that appeared after last release where raw HTML tags were appearing in email alerts.
* Fix: Tour behaved inconsistently under some conditions. Fixed.
* Fix: Mismatched HTML tags in some presentation code. Fixed.
* Fix: When fetching theme list the interator had the same name as the array. Fixed.
* Fix: Detection for malware URLs in comments had a partial description in the issue. Was being overwritten when it should have been appended. Fixed.
* Fix: Check if dns_get_record() exists before using it to avoid warnings.
* Fix: If you have the wordfence security network disabled, the _wfVulnScanners table may have grown indefinitely. Fixed so it's regularly truncated.
* Fix: wordfence::getLog() was private and should be public. Fixed.
* Fix: Removed warning about _wfsf not being an element of GET params. Usually hidden, but in case something checks error_get_last()
= 5.3.5 =
* Update: Upgraded the geoIP country database to Jan 2015 version.
* Improvement: Added an option to disable execution of PHP code in the uploads directory as an added level of protection. Under "Other Options" on the Wordfence options page.
* Improvement: We now email you any malware URLs encountered and they won't be filtered by your spam filter because the URL is included in the alert email as an image.
* Fix: Fixed an issue that would cause multiple scans to be scheduled if the plugin was disabled and then reenabled.
* Fix: The name of malicious files detected are now included in the alert email sent containing the issues.
= 5.3.4 =
* Changed FAQ link when locked out and email unlock doesn't work to correct link.
* Falcon cache now creates files as mode 0644 for improved security.
* Updated GeoIP database to December 2014 version.
= 5.3.3 =
* Security fix. Thanks Matt Barry.
* Changed what we consider to be private addresses to a smaller range of addresses. See current range at: http://docs.wordfence.com/en/How_Wordfence_handles_Private_Addresses
* Fixed a warning about an undefined value which appeared after we added referer blocking in 5.3.2.
= 5.3.2 =
* Feature: Advanced blocking now includes referer blocking. i.e. you can block visitors arriving from certain websites or pretending to. See updated http://docs.wordfence.com/en/Advanced_Blocking
* Feature: Developers, you can now ask Wordfence to whitelist your server IP by calling wordfence::whitelistIP(). See http://docs.wordfence.com/en/WhitelistIP
= 5.3.1 =
* IP to Country database updated to November 4th 2014 version.
* Options export and import now also exports Country Blocking and Scan Schedule configuration.
* Scans fully documented at docs.wordfence.com. Link on 'Scan' page under heading.
* Live Traffic fully documented at docs.wordfence.com. Link on Live Traffic page.
* Falcon Engine/Wordfence Caching fully documented. Link on Performance Setup page.
* Blocked IPs, locking and throttling fully documented. Link on Blocked IPs page.
* Cellphone Sign-in fully documented. Link under title on Cellphone sign-in page.
* Country blocking fully documented. Link on Country blocking page.
* Scan Scheduling fully documented. Link on Scan Scheduling page under title.
* Whois and Advanced Blocking documented including how Live Traffic, Whois and Advanced blocking work together.
* Removed unnecessary text from several menu items and moved into official docs where needed.
= 5.2.9 =
* Added ability to export Wordfence settings and reimport on one or many sites using secure token.
* Added API function to programatically import Wordfence settings from another WordPress site.
* Upgraded to Wordfence API version 2.14.
= 5.2.8 =
* Detailed documentation for all options on the Wordfence options page. Launching docs.wordfence.com wiki.
* Fixed server-side issue where diff'ing certain files would give a blank page or an API error.
* Removed now unused whois library because we're now using Wordfence API server to get around whois port blocking.
= 5.2.7 =
* Fixed issue that would cause infected files with identical content to only have the first file found show up in scans and the rest would not appear.
* Whois queries now go via our own server as a workaround for hosting providers who block your web server's access to port 43 preventing you from making a direct whois query.
* Fixed issue that caused litespeed users to receive multiple warnings about the noabort issue.
* Added detection for 5 new malware variants. Thanks to Dave M. and others for the samples. Keep them coming folks!
* Updated Wordfence server API to version 2.12.
* Added facility at bottom of Wordfence options page to send a test email from your WordPress sytem to check if email sending is working.
* Suppress LOCK_EX flock() warnings in falcon engine that were being generated by sites that use NFS and don't support flock() or reliable file locking.
* Updated to the October 2014 version of the Geo IP country DB. (newest edition)
= 5.2.6 =
* Fixed bug that caused country blocking and redirecting to an external URL to not work if the external URL's relative path matched the current page's relative path.
* Made it clear that country blocking URL's require absolute URL's.
= 5.2.5 =
* Security release. Update immediately. Thanks to Julio Potier.
* Code hardening including improved sanitization and an additional nonce for unlock email form. Special thanks to Ryan Satterfield for the hard work.
* Stability of auto-update improved for LiteSpeed customers. We auto-detect if you don't have E=noabort:1 in your .htaccess and give you instructions.
* Auto-update also disabled now for LiteSpeed customers who don't have E=noabort:1 and you will get an email alert with an explanation.
* Fixed a bug that may cause you to have advanced blocking patterns disabled with falcon engine enabled that should not be disabled.
* Removed a benign warning in wfCache.php.
* Added clarity to the banned URL option on the options page. All URL's must be relative.
* Added a primary key to the wp_wfStatus table which is required for certain incremental backup plugins and utilities.
* Fixed advanced country blocking which was not correctly displaying advanced options.
* Migrated to using wp_kses() for sanitization.
* Prevent IP spoofing in default Wordfence IP configuration.
* Change explanations of how Wordfence gets IP's to make it clear which to use to prevent spoofing.
* Make it clear that the option to have IP's immediately blocked when they access a URL requires relative URL's starting with a forward slash.
* Whitelist Sucuri's scanning IP addresses which were getting blocked because they triggered Wordfence blocking during a scan.
* Improved Wordfence's code that acquires the visitor IP to block certain spoofing attacks, be more platform agnostic and deal with visits from private IP's more elegantly.
= 5.2.4 =
* Security release. Upgrade immediately.
* This release fixes an XSS vunlerability on Wordfence "view all traffic from IP" page.
* Also fixes a hard to exploit XSS which exists if you have your site as the default site on your web server, falcon enabled and debugging comments enabled.
* Improves Revolution Slider proteciton.
* Fixed bypass for fake googlebot blocking.
= 5.2.3 =
* Updated Geo IP country database to newest version (September 2014 edition)
* Security fix. Improved referrer sanitization in live traffic.
* Changed scan success messaging for clarity.
* Fixed minor bug in IP validation which manifested when users use IPv6 to IPv4 translation which produces 255.x.x.x addrs.
= 5.2.2 =
* Protection from the Slider Revolution Plugin arbitrary file download vulnerability announced today. Attempts to download any .php file including wp-config.php are denied.
* Changed the Wordfence Memory config option's label to make it clearer what the option does.
* Moved screenshots out of plugin distro directory to reduce plugin payload size.
= 5.2.1 =
* Fix: Users with large lists of blocked IP's (over 2,100) would receive a browser error "Uncaught RangeError: Maximum call stack size exceeded". Fixed.
* Improvement: Added detection for FOPO obfuscation often used by hackers to obfuscate PHP code. Will detect a range of newer infections. (Server-side code change)
= 5.1.9 =
* Fix: Crawler triggering update cron job threw error about show_message() being redeclared at end of update. Fixed.
* Fix: Live traffic cities were incorrect and did not match country blocking block effects under certain conditions. Fixed.
* Fix: If a site database contained a table with dashes in the table name, we would throw an error at the end of every scan. Fixed.
* Improvement: Upgraded country DB to newest version.
* Improvement: Changed live traffic geo location caching to be 24 hours instead of a week so that geo DB updates for live traffic on our servers take effect sooner.
* Improvement: Ignoring .sql files in scans which are usually backups and contain many false positives, unless high sensitivity scanning is enabled.
= 5.1.8 =
* Fix: Option to disable config caching. You can find this new option at the bottom of the Wordfence options page.
* Note: If you are seeing the "cron key does not match the saved key" error, check the box to disable config caching at the bottom of the Wordfence options page, save and this will fix it.
* Note: If you are trying to save your Wordfence options and the options keep reverting, enable the "disable config caching" at the bottom of your Wordfence options page, save and this will fix it.
= 5.1.7 =
* Improvement: Wordfence now supports websites behind proxy servers when communicating with the Wordfence API servers.
* Fix: Removed old image files that were unused.
= 5.1.6 =
* Feature: Country blocking now lets you block login page OR rest of site or any combination. So you can now block the login page only for example.
* Improvement: Upgraded the country blocking database to the newest version which is July 2014.
* Improvement: Improved server-side performance for Wordfence scanning.
* Improvement: Offer the option to keep Wordfence up-to-date automatically.
* Improvement: If file contains malicious code, include filename in email alert summary info.
* Fix: Removed strings in readme.txt that were causing false positives in hosts own scanning software.
* Fix: Prevent lockout email alerts being sent for blank usernames.
= 5.1.5 =
* Fix: Bing crawler was being misidentified as human. Fixed.
* Fix: Escaping HTML on whois records. Thanks Nikhil Srivastava, TechDefencelabs (http://techdefencelabs.com)
= 5.1.4 =
* Feature: Auto updates for Wordfence! This is a much-requested feature by our power admin's. Enable the "Update Wordfence automatically when a new version is released" option on the Wordfence options page.
* Fix: Security fix. Thanks to Narendra Bhati from Suma Soft.
= 5.1.2 =
* Feature: You can now specify one or more URL's that if accessed will cause the IP to immediately be blocked. See below "Other Options" for the new feature.
* Improvement: Added additional debugging info when cron key does not match saved key to help diagnose any problems.
* Improvement: New Issues email now contains site URL rather than just hostname to help identify subdirectory sites.
* Improvement: Upgraded the country blocking database to the newest version which is June 2014.
* Fix: Some browser versions were being reported as 0.0. Updated browser detection.
= 5.1.1 =
* Improvement: WooCommerce now officially supported out of the box.
* Feature: Added the wordfence:doNotCache() function that you can call in your themes and plugins to prevent caching of items.
* Fix: Fixed the warning appearing in lib/wfUtils.php about a scalar being treated as an array which appeared in 5.0.9.
* Fix: Failed logins were not being logged for non-existent usernames that were set to immediatelly block. Fixed.
* Fix: Removed several warnings/notices that would appear when WP_DEBUG is enabled.
* Fix: Added default character set to .htaccess which fixes garbled international characters being served from cache on sites with no default apache charset.
= 5.0.9 =
* Feature: (Premium) Advanced Comment Spam Filter. Checks comment source IP, author URL and hosts and IP's in body against additional spam lists.
* Feature: (Premium) Check if your site is being Spamvertised i.e. your domain is being included in spam emails. Usually indicates you've been hacked.
* Feature: (Premium) Check if your website IP is generating spam. Checks against spam lists if your IP is a known source of spam.
* Improvement: Cache clearing errors are nown shown with clear explanations.
* Improvement: Added lightweight stats logging internally in preparation for displaying them on the admin UI in the next release.
* Fix: If a non-existent user tries to sign in it is not logged in the live logins tab. Fixed.
* Fix: Removed warning "Trying to get property of non-object" that would occur under certain conditions.
* Fix: Removed call to is_404() which was not having any effect and would issue a warning if debug mode is enabled.
* Fix: Check if CURL is installed as part of connectivity test.
= 5.0.8 =
* Feature: Support for Jetpack Mobile Theme in Falcon Caching engine. Regular pages are cached, mobile pages are served direct to browser.
* Improvement: Pages that are less than 1000 bytes will not be cached. The avg web page size in 2014 is 1246,000 bytes. Anything less than 1000 bytes is usually an error.
* Improvement: Wordfence will now request 128M on hosts instead of 64M where memory in php.ini is set too low.
* Fix: Wordfence was caching 404's under certain conditions. Fixed.
* Fix: Nginx/FastCGI users would sometimes receive an error about not being able to edit .htaccess. Fixed.
= 5.0.7 =
* Feature: Immediately block IP if hacker tries any of the following usernames. (Comma separated list that you can specify on the Wordfence options page)
* Feature: Exclude exact URL's from caching. Specifically, this allows you to exclude the home page which was not possible before.
* Feature: Exclude browsers or partial browser matches and specific cookies from caching.
* Fix: Fixed issue where /.. dirs would be included in certain scandir operations.
* Fix: logHuman function was not analyzing user-agent strings correctly which would allow some crawlers that execute JS to be logged as humans.
* Fix: Removed ob_end_clean warnings about empty buffers when a human is being logged.
* Fix: Removed warning in lib/wfCache.php caused by unset $_SERVER['QUERY_STRING'] when we check it.
* Fix: Fixed "logged out as ''" blank username logout messages.
* Fix: Improved security of config cache by adding a PHP header to file that we strip. Already secure because we have a .htaccess denying access, but more is better.
* Fix: Falcon Engine option to clear Falcon cache when a post scheduled to be published in future is published.
* Fix: Fixed Heartbleed scans hanging.
= 5.0.6 =
* Feature: Prevent discovery of usernames through '?/author=N' scans. New option under login security which you can enable.
* Fix: Introduced new global hash whitelist on our servers that drastically reduces false positives in all scans especially theme and plugin scans.
* Fix: Fixed issue that corrupted .htaccess because stat cache would store file size and cause filesize() to report incorrect size when reading/writing .htaccess.
* Fix: Fixed LiteSpeed issue where Falcon Engine would not serve cached pages under LiteSpeed and LiteSpeed warned about unknown server variable in .htaccess.
* Fix: Fixed issue where Wordfence Security Network won't block known bad IP after first login attempt if "Don't let WordPress reveal valid users in login errors" option is not enabled.
* Fix: Sites installed under a directory would sometimes see Falcon not serving cached docs.
* Fix: If you are a premium customer and you have 2FA enabled and your key expires, fixed issue that may have caused you to get locked out.
* Improvement: If your Premium API key now expires, we simply downgrade you to free scanning and continue rather than disabling Wordfence.
* Improvement: Email warnings a few days before your Premium key expires so you have a chance to upgrade for uninterrupted service.
= 5.0.5 =
* Fix: Removed mysql_real_escape_string because it’s deprecated. Using WP’s internal escape.
* Fix: Wordfence issues list would be deleted halfway through scan under certain conditions.
* Fix: Connection tester would generate php error under certain conditions.
= 5.0.4 =
* Feature: We now scan for the infamous heartbleed openssl vulnerability using a non-intrusive scan method safe for production servers.
* Improvement: We now check if .htaccess is writable and if not we give you rules to manually enable Falcon.
* Improvement: Once Falcon is enabled, if we can’t write to .htaccess, we fall back to PHP based IP blocking.
* Feature: You can now clear pages and posts from the cache on the list-posts page under each item or on their edit pages next to the Update button.
* Fix: We now support sites who use a root URI but store their files and .htaccess in a subdirectory of the web root.
* Fix: Added an additional filter to prevent crawlers like Bing who execute javascript from being logged as humans.
* Fix: Changed the extension of the backup .htaccess to be .txt to avoid anti-virus software alerting on a download with .com extension. [Props to Scott N. for catching this]
= 5.0.3 =
* Removed ability to disable XML-RPC. The feature broke many mobile apps and other remote services.
= 5.0.2 =
* Fix: Issue that caused users running WordPress in debug mode to see a is_404 warning message.
* Fix: Issue that caused Call to undefined function wp_get_current_user warning.
* Fix: Issue that caused caching to not work on sites using subdirectories.
* Fix: Issue that caused SQL errors to periodically appear about wfPerfLog table.
* Fix: Issue that caused warnings about array elements not being declared.
= 5.0.1 =
* To see a video introduction of Falcon Engine included with Wordfence 5, [please watch this video](https://vimeo.com/91217997)
* SUMMARY: This is a major release which includes Falcon Engine which provides the fastest WordPress caching available today. It also includes many other improvements and fixes. Upgrade immediatelly to get a massive performance boost for your site, many new features and fixes.
* Feature: Falcon Engine provides the fastest caching algorithm for WordPress. Get up to a 50x site speedup now when you use Wordfence.
* Feature: PHP based caching as an alternative to Falcon.
* Feature: IP, browser and IP range blocking is now done using .htaccess if Falcon Engine is enabled providing a big performance boost.
* Feature: Falcon and PHP caching includes ability to exclude URL patterns from cache along with cache management.
* Feature: Disable XML-RPC in WordPress to prevent your site from being used as a drone in a DDoS attack.
* Feature: Option to disable Wordfence cookies from being sent.
* Feature: Option to start all scans using the remote start-scan option. This may fix some customers who can’t start scans.
* Feature: Falcon Engine includes the ability to block IP ranges using .htaccess. We take your ranges and convert them into CIDR compatible .htaccess lines that very efficiently block the ranges you’ve specified. Another great performance improvement.
* Feature: If user disables permalinks we automatically disable Falcon Engine caching.
* Feature: Before you enable Falcon Engine we make you download a backup of your .htaccess file just in case.
* Improvement: Real-time traffic monitoring loads asynchronously to provide a faster user experience.
* Improvement: All Wordfence configuration variables are now cached on disk rather than repeatedly looked up on the database providing a big performance improvement.
* Improvement: Updated browser detection algorithms for new browsers.
* Improvement: Updated country GeoIP database to the April edition.
* Improvement: Improved performance by only loading routines required for logged in users if they have a login cookie. No DB lookup required.
* Improvement: Added on-off switches to top of live traffic to make it easy to turn on/off.
* Improvement: Removed marketing message from Wordfence email alerts.
* Improvement: Added ability to exclude files from scan that match patterns. Multiple excludes using wildcards allowed.
* Improvement: Improved performance by moving all actions that would only be used by a logged in user to be set up using add_action if the user actually has a login cookie.
* Fix: Added a throttle to prevent identical email alerts being sent repeatedly.
* Fix: Changed order of IP blocking and alerting code to prevent multiple email alerts being sent in a race condition.
* Fix: Cleaned up legacy code including removing all array_push statements.
* Fix: Added try/catch block to fileTooBig() function when we encounter files that we can’t seek on and that throw an IO error to prevent scans from crashing.
* Fix: Resolved issue that may have caused wfhits table to grow continuously on some sites.
* Fix: Ensured that runInstall() isn’t called multiple times.
* Fix: Moved register_activation_hook to only be called if the user has a login cookie and has a likelihood of being actually logged in as admin. Performance improvement.
* Fix: Added doEarlyAccessLogging routine to move logging before caching so we can have both.
* Fix: Removed the “update LOW_PRIORITY” sql statement when updating wfHits which was intended to speed up MySQL performance but may have actually caused queries to queue up and slow things down.
* Fix: Whitelisted IP’s are no longer put through two factor authentication as one would expect.
* Fix: Changed our wp_enqueue_script calls to add a ‘wf’ prefix to our script names so that another plugin doesn’t cause our scripts to not load.
* Fix: Removed code that would cause all alerts to be turned on for some users under certain conditions.
* Fix: Automatically excluding backup files and log files from URL scans to reduce false positives on referring URLs in logs and backups.
= 4.0.3 =
* Improvement: Added "high sensitivity" scanning which catches evals with other bad functions but may give false positives. Not enabled by default.
* Fix: Removed code that caused error message during scan initialization.
* Fix: IP to number conversation code had a problem with IP's with a single 0 in them. Bug was introduced in 4.0.2.
* Fix: Very fast attacks would generate a lot of email alerts due to race condition. Fixed.
= 4.0.2 =
* Feature: Ability to bulk repair or delete files when cleaning a site.
* Feature: You can now limit the number of emails per hour that Wordfence sends.
* Feature: You can now scan image files as if they are executables when cleaning a site. See the option under scanning options.
* Feature: New connectivity test for wp_remote_post to our servers.
* Feature: New detection for backdoors that were previously missed in scans.
* Improvement: Added a link to the Wordfence admin URL for a site when an email alert is received.
* Improvement: Removed "buy premium" message from the alert emails which was causing confusion and irritation.
* Improvement: Improved private address detection by making it faster and adding all private subnets, not just RFC1918 nets.
* Improvement: Switched to wp_remote_get for triggering scans instead of wp_remote_post()
* Improvement: Added some more verbose debugging for scan starts when in debug mode.
* Improvement: No longer include private addresses when checking malware URL's and scanning IP's.
* Improvement: Added code to disable Wordfence if WordPress is installing.
* Fix: Text change because not all "scan" buttons are blue.
* Fix: Removed URL from wfBrowscapCache.php which was causing false positives during scans.
* Fix: Fixed SQL bug that triggered when we logged a vulnerability scan.
* Fix: IP range blocks where a digit is preceded by a '0' char will no longer generate an error.
* Fix: The getIP() routine will no longer use the IP closest to a visitor in network topology if that IP is a private address and behind a proxy.
= 4.0.1 =
* Real-time WordPress Security Network Launched.
* If another site is attacked and blocks the attacker, your site also blocks the attacker. Shared data among Wordfence sites.
* See our home page on www.wordfence.com for a live map of attacks being blocked. Then blog about us!!
* Fixed bug where wfBrowscapCache.php is reported as malicious.
* Big improvement in scanning speed and efficiency of URL's and IP addresses.
* Fixed preg_replace() warning by using newer preg_replace_callback() func.
= 3.9.1 =
* Fixed issue that caused Wordfence security to not log 404's.
* Made 404's more visible on the live traffic page.
* Fixed panel width that was too narrow for WP 3.8 on live traffic and issues pages.
* Report hack attempts to Wordfence Security scanning server for DDoS protection.
* Remind admin if security alert email is blank and tour is closed.
* Updated links to new Wordfence Security support website at support.wordfence.com.
* Made Wordfence Security paid-users-only message a little more user friendly.
= 3.8.9 =
* Fix: Fixed issue that caused certain Wordfence Security login functions to not work. Was a PHP 5.4 vs older version incompatability issue.
* Updated GeoIP location database to new version for country blocking.
* Fix: Resolved issue that caused the Issues that Wordfence Security found to not be displayed in some cases.
* Updated Wordfence Security to WordPress 3.8 Compatability.
= 3.8.8 =
* Fix: We now truncate the wfHoover table after scans to save disk space on servers with huge numbers of URLs in files.
* Fix: isStrongPasswd function was being called statically but not declared as static.
* Fix: Improved error reporting when we can't connect to Wordfence Security API servers.
* Fix: Fixed code that was causing an error log warning when we read the requested URL.
* Fix: Disable and clear cellphone sign-in if you downgrade to free from paid to prevent lockouts.
= 3.8.7 =
* Fixed issue that caused cellphone sign-in to not work with PHP version 5.4 or greater.
* Fixed conflict with other plugins that also use the Whois PHP library.
* Fixed an unsanitized user-agent string.
* Added new malware signatures for string rot13 heuristics.
* Updated compatibility to 3.7.
= 3.8.6 =
* Fixed issue that caused scheduled scans to run even if disabled.
* Fixed display bug when signin fails.
= 3.8.5 =
* Fixed issue that caused Human traffic to not be logged in Wordfence Security live traffic view.
= 3.8.4 =
* Removed Wordfence Security .htaccess because it doesn't offer any security functionality and increases incompatibility.
* Fixed spelling errors.
* Added check to see if HTTP_USER_AGENT server variable is defined before using it to suppress large number of warnings on some sites.
* Changed the way we call admin_url to the correct syntax.
* Correctly escaped HTML on error messages.
* Fixed issue that generated non-compliant query string.
* Updated GeoIP database to newest version.
= 3.8.3 =
* Updated GeoIP database for country blocking security.
* Fixed bug in Wordfence Security where we called reverseLookup in wfUtils statically and it's a non-static method. Thanks Juliette.
* Removed characters that are invalid in an IP address or domain from the Whois facility to improve security.
* Prevent users from creating 1 character passwords to improve security.
* Fixed issue that caused an invalid variable to be used in an error message and improved Wordfence Security temporary file implementation for get_ser/ser_ser functions. Thanks R.P.
* Fixed issue that caused IP to output as integer in status msg. Not security related but display issue.
* Declared Wordfence Security reverseLookup function as static to remove warning.
* Fixed returnARr syntax error in Wordfence Security class.
* Note, there is no Wordfence Security version 3.8.2.
= 3.8.1 =
* Added Cellphone Sign-in (Two Factor Authentication) for paid Wordfence Security members. Stop brute-force attacks permanently! See new "Cellphone Sign-in" menu option.
* Added ability to enforce strong passwords using Wordfence Security when accounts are created or users change their password. See Wordfence Security 'options' page under 'Login Security Options'.
* Added new backdoor/malware signatures to Wordfence Security scanning including detection for spamming scripts, youtube spam scripts and a new attack shell.
* Fixed issue: Under some conditions, files not part of core or a known theme or plugin would be excluded from a Wordfence Security scan.
* Fixes from Juliette R. F. Remove warnings for unset variables. Fix options 'save' spinner spinning infinitely on some platforms. Removed redundant error handling code in Wordfence Security.
* Added ability to downgrade a paid Wordfence Security license to free.
= 3.7.2 =
* Fixed issue that caused locked out IP's to not appear, or to appear with incorrect "locked out until" time.
= 3.7.1 =
* Moved global firewall, login security and live traffic options to top of options page.
* Made it clear that if you have Wordfence Security firewall disabled, IP's won't be blocked, country blocking won't work and advanced blocking won't work with warnings on each page.
= 3.6.9 =
* Fixed JS error in Wordfence Security that occurs occasionally when users are viewing Wordfence Security activity log in real-time.
* New Feature: Prevent users registering 'admin' username if it doesn't exist to improve security. Recommended if you've deleted 'admin'. Enable on 'options' page.
* Check if Wordfence Security GeoIP library is already declared for all functions. Fixes Fatal error: Cannot redeclare geoip_country_code_by_name.
* Fixed a Wordfence Security compatibility issue with sites and hosts using Varnish front-end cache to ensure legit users don't get blocked. Added two HTTP no-cache and Expires headers.
* Fixed bug when using Wordfence Security Advanced User-Agent blocking with certain patterns this would appear: Warning: preg_match() [function.preg-match]: Unknown modifier
* Vastly improved speed of Wordfence Security Advanced User-Agent blocking security feature. No longer using regex but still support wildcards using fnmatch()
* We now support usernames with spaces in the list of users to ignore in the live traffic config on 'options' page.
* Improved language in status messages to avoid confusion. Changed "unrecognized files" to "additional files" to describe non-core/theme/plugin files.
= 3.6.8 =
* Fixed bug in Wordfence Security that caused IP range blocking to not block.
* Fixed bug that caused unblocking a permanently blocked IP to work, but not refresh the list.
* Added usernames to the email you receive when a user is locked out.
* Added a few more status messages for Wordfence Security URL malware scanning.
* Removed the sockets function call from connection testing because some hosts don't allow calls to socket_create()
* Added detection in the Wordfence Security Whois page to check if the server has the fsockopen() function available with helpful message if it's disabled.
* Whitelisted IP's now override Wordfence Security country blocking and range blocking.
* Removed Bluehost affiliate links for free customers
* Fixed issue that caused scans to crash when checking URLs for malware.
* Fixed issue that caused scans with large numbers of posts that contain the same URL to crash.
* Updated the Wordfence Security GeoIP database for country blocking to newest version.
= 3.6.7 =
* Improved security for Cloudflare customers to prevent spoofing attacks and protect when a hacker bypasses Cloudflare proxies.
* Added clear explanation of what increasing AJAX polling time does on options page.
* Fixed issue with Wordfence Security detecting itself as malware. We messed up the version number in previous release.
= 3.6.6 =
* Added option to change AJAX polling frequency
* Fixed issue that caused whitelisted IP's to not be whitelisted.
* Added code that prevents blocking of Wordfence's API server (or Wordfence Security will cease to function)
* Added link at bottom of 'options' page to test connectivity to our API servers.
* Include any CURL error numbers in error reporting.
* Fixed issue that caused IP range blocking to not block access to login page.
* Fixed issue that caused cache files to be flagged as malicious.
= 3.6.5 =
* Fixed Fatal error: func_get_args(): Can't be used as a function parameter.
* This bug affected users using PHP older than 5.3.0
= 3.6.4 =
* Fixed a major javascript bug that snuck in 2 releases ago and has disabled many features for Internet Explorer browsers.
* Clarified range blocking examples.
= 3.6.3 =
* Fixed 'max_user_connections' issue.
* Wordfence Security now uses WordPress's WPDB and this halves the number of DB connections Wordfence Security establishes to your DB.
* Wordfence Security is now HyperDB compatible.
* Advanced blocking i.e. Browser and IP Range blocking is now a free feature.
* We no longer disable Live Traffic if we detect a caching plugin. Based on user feedback, apparently live traffic actually works with those plugins.
* Fixed issue that causes site to crash if a conflicting GeoIP library is installed.
* Changed logHuman routine to do a LOW_PRIORITY MySQL update to speed things up.
* Login failure counter is now reset if you send yourself an unlock email so you're not locked out again after 1 failure.
* The free version of Wordfence Security is now supported with ads at the top of the admin pages. Please visit our sponsors and help keep Wordfence Security free!
* Fixed issue that may cause scans to not be scheduled using the default schedule for new users.
* There was no 3.6.2 release, in case you're wondering about the version skip.
= 3.6.1 =
* Major new release that includes the much asked for IP Range blocking with ISP blocking ability and browser blocking.
* Added Wordfence Security feature: WHOIS for IP's and Domains. Supports all registries and local rWhois
* Added Wordfence Security feature: Advanced Blocking to block IP ranges and browser patterns.
* Added Wordfence Security feature: WHOIS on live traffic pages.
* Added Wordfence Security feature: network blocking links on live traffic pages.
* Fixed bug where W3 Total Cache and WP Super Cache cache blocked Wordfence Security pages.
* Added explanation of how caching affects live traffic logging if we detect a caching plugin.
* Fixed AJAX loading to deal with multiple parallel ajax requests.
* Updated tour to include info on new WHOIS and Advanced Blocking features.
* Changed manual IP blocks to be permanent by default.
* Fixed issue in Wordfence Security that caused live traffic page not to reload when IP is unblocked.
* Modified "How does your site get IP's" config to avoid confusing new users.
* Changed 503 block message to be more helpful with link to FAQ on how to unblock.
* Removed redundant code in wfAPI.php
* Optimized code by moving firewall specific code to execute only if firewall is enabled.
* Fixed issue that caused "last attempted access" to show over 500 months ago.
* Fixed issue that was causing warning in getIP() code.
* Upgraded to Wordfence Security API version 2.6.
= 3.5.3 =
* This is the dev version. Stable is 3.5.2.
* Added detection for "hacked by badi" hack. Check if wp_options has been changed to UTF-7.
= 3.5.2 =
* IP detection is now much more robust. Admins must specify how their site gets IP addresses.
* Fixed issue that would throw Ajax ticker into a hard loop and put load on a server if user is on "options" page and WF can't detect IPs.
* Added support for Cloudflare proxies when getting client's real IP address.
* If we fail to get an IP and then get an IP succesfully, we update the activity log.
* Activity log update in case of successful IP acquisition will warn if we're getting internal RFC1918 IP's e.g. the IP of your firewall.
= 3.5.1 =
* Fixed issue with twentyten, twentyeleven, twentytwelve themes showing up as modified in 3.5.
* Fixed issue with wpdb->prepare throwing warnings. WordPress changed their code and we have now caught up.
* Fixed issue of files containing "silence is golden" showing up as being changed with no executable content.
= 3.4.5 =
* Fixed security issue of being able to list wordfence Security's own virtual dir on some server configurations.
* Fixed issue of WF using deprecated function which caused warnings or errors on install.
* Added link to security alert mailing list on "Scan" page next to manual start scan button and in tour.
= 3.4.4 =
* Fixed issue that caused scans to not complete.
* Fixed issue that caused scans to launch a large number of child processes due to very short scan timeout.
* Fixed issue that caused websites that don't know their own hostname to not be able to scan.
* Added workaround for a bug in Better WP Security breaking Wordfence Security due to their code overwriting the WP version.
* Optimized the way we calculate max execution time for each process while scanning.
= 3.4.1 =
* Removed wfscan.php script and now using pseudo-ajax calls to fire off scans. Much more reliable.
* Removed visitor.php script and now using pseudo-ajax calls to log human visits.
* Added config option to allow admin to specify max execution time (advanced only!!).
* Fixed issue that caused API calls to fail on MultiSite installs.
* Fixed issue that caused comments to break on MultiSite installs under certain conditions.
* Fixed issue that caused incorrect domain to be shown in live traffic view on multi-site installs.
* Fixed issue where some proxies/firewalls send space delimited IP addresses in HTTP headers and Wordfence Security now handles that.
* Fixed issue that caused Wordfence Security to capture activation errors of other plugins.
* Geo IP database update to November 7th edition.
= 3.3.7 =
* Upgrade immediately. Fixes possible XSS vulnerability in Wordfence Security "firewall unlock" form.
* Also added rate limiting to max of 10 requests per second to the unlock form.
= 3.3.5 =
* Re-releasing to try and fix an issue with the WordPress plugin distro system.
= 3.3.4 =
* Fixed bug that caused malformed URLs to be sent to scanning server which caused errors on some installations.
* Fixed issue that caused scans to "hang" or stall on larger sites during "Analyzing" phase when we hash files. Sites of arbitrary size can now be scanned.
* Fixed issue that caused "plugin generated X characters of unexpected output" error during install or upgrade.
= 3.3.3 =
* Fixed errors caused by ini_set being disabled on certain servers.
* Removed error logging messages in certain cases because some badly configured hosts write these errors to the web browser.
* Fixed getIP code that was evaluating arrays as strings in some cases.
* Added error logging so that if there is an activation error, the Wordfence Security will display the actual error to you.
* Fixed issue that caused scan to output "Could not get the administrator's user ID." when a user has changed their table prefixes under certain conditions.
= 3.3.2 =
* A complete rearchitecture of Wordfence Security scanning to massively improve performance.
* Our free customers are now 100% back in business. Apologies for the delay, but this was worth the wait.
* Wordfence Security is now 4X faster for both free and paid customers.
* Significantly reduced CPU and memory overhead.
* Significantly reduced network througput when communicating with Wordfence Security scanning servers.
* Big performance improvement on our own scanning servers which allows us to continue to provide Wordfence Security free for the forseeable future.
* Upgraded scanning API to version 2.4
* Upgraded Geo IP database to October version.
* Moved core, theme, plugin and malware scanning into hashing recursive routine for big performance gain.
* Removed need for fileQ in hashing routine for reduction in memory usage and reduction in DB write size.
* Removed send-packet architecture and now processing files locally by fetching comparison data from scanning server instead.
* Removed wfModTracker - old module that is no longer used.
* Malware is now scanned by fetching hash prefixes from WF server instead of sending hashes of every file to our server. Much more efficient.
* Made status messages in summary console a little more user friendly.
= 3.2.7 =
* Fixed dates and times in activity log alert emails and other emails to be in site's local timezone.
* Added advanced country blocking options which allow bypass if a special URL is hit.
* Added warning in options page if alert email is not configured under alert checkboxes.
* Modified scan times to be within 60 minute window after scheduled time to prevent stampede at the top of the hour on our scanning server.
* Fixed bug on Godaddy and a few other hosts where viewing list of files not in the repo caused error. This was caused by posix functions not being supported on Godaddy and some other hosts.
= 3.2.6 =
* Paid feature: Remote site vulnerability and infection scanning.
= 3.2.5 =
* Moved all attack signatures out of the plugin to prevent Wordfence Security being detected as malicious in a false positive.
= 3.2.4 =
* Improved country blocking to make bulk adding/deleting of countries much easier.
* Fixed bug that caused Google feed fetcher and other Google UA bots to get blocked if blocking of unverified Googlebots was enabled.
* Fixed issue where Locked out users were shown having the same expiry time as Blocked IP's.
* Fixed issue where Locked out users were not shown in the locked out list, but were still locked out if Blocked IP and Locked out expiry was different.
* Improved performance of whitelisting so if whitelisted, all rules are bypassed.
* Fixed issue that caused twentyten and twentyeleven themes to be shown as missing core files if they have been removed and theme scanning is enabled.
* Fixed issue that made it impossible to end the tour for Firefox users.
= 3.2.1 =
* Theme and plugin scanning is now free. Woohoo!
* Added introductory tour for Wordfence Security.
* Upgraded to Wordfence Security scanning API version 2.0 to allow free theme and plugin scanning.
* Fixed two issue with scheduled scanning for premium users that would cause scans to not run or run at wrong times under certain conditions.
* Added feature to view unknown files on system to help clean badly infected systems. See on scanning page in "Tools" under yellow box.
* Fixed blocked countries overflowing their container in the user interface.
* Fixed case where if user is using MySQL >= 5.1.16 and doesn't have the "drop" privilege, they can't truncate the wfFileQueue table and it could grow uncontrollably.
* Updated to the new Libyan flag.
* Fixed mysql_ping() reconnection to DB generating warnings.
* Fixed issue that caused scans to hang. Wordfence Security now processes smaller batches of files before checking if it needs to fork.
* NOTE: We removed a list of shells we're scanning for because they were yielding false positives on some host scanning software.
* DNS fix from previous release backed out because it's no longer needed. (We temporarily hardcoded an IP)
= 3.1.6 =
* Emergency release to deal with DNS issue.
= 3.1.4 =
* Fixed SQL error in code that checks if IP blockedTime has expired. Changed column type to signed.
* Added detection of malicious injected titles with scripts or meta redirects.
* Fixed bug introduced in previous release that prevents blocked IP's from being blocked.
= 3.1.2 =
* Fixed permanent IP blocking bug which caused permanently blocked IP's to no longer display in the list after some time, even though there were still blocked. (Incorrect SQL query)
* Fixed "Can't get admin ID" on scan starts for both MU and single site installs.
* Improved status messages for sites with very large numbers of comments.
* Fixed bug that caused sites in subdirectories to not be able to view site config or run the memory test on the Wordfence Security "options" page.
* Fixed database disconnect bug (mysql server has gone away). An additional fix was required to finally squash this bug.
* Removed the code that prevented you from installing Wordfence Security on Windows. Sorry Windows customers!
* Improved scheduling so that it is now more reliable.
* Fixed bug that caused a loop for customers who could not contact the Wordfence Security servers on install.
* Added helpful message if you get the "can't connect to itself" error message with some additional documentation to help solve this issue.
* Improved error reporting when Wordfence Security can't connect to the scanning servers. Now features a helpful explanation rather than a generic message.
* Added Country Geo-Blocking feature for paid customers.
* Added Scan Scheduling feature for paid customers.
= 3.1.1 =
* Added another fix for "mysql server has gone away" error. Wordfence Security now makes sure the DB is still connected and reconnects if not.
* Added new detection for encoded malicious code in files.
* Fixed bug introduced yesterday that prevented permanent blocking of IP's.
* Improved ability to detect if we're running on Windows (but we don't support Windows yet).
* Issue intelligent warning if Wordfence Security can't read base WordPress directory.
* Don't activate Wordfence Security if user is running Windows.
* Cleaned up errors if a file can't be scanned due to permission restrictions.
* Improved reporting of which user scan is running as and how we determined who the admin user is.
= 3.1.0 =
* Changed the way we monitor disk space from % to warning on 20 megs and critical on 5 megs remaining. This deals with very large disks in a more rational way. (Thanks Yael M. and Ola A.)
* We now deal with cases where the $_SERVER variable contains an array instead of string for IP address. It seems that some installations modify the value into an array. (Thanks S.S.)
* The Wordfence Security DB connection now more reliably changes the mysql timeout for the session to prevent "mysql server has gone away" errors. (Thanks Peter A.)
= 3.0.9 =
* Fixed problem where scan process can't get admin ID.
* Fixed issue that caused permanent IP's to not be permanent.
* Fixed SQL error when calculating if IP block has expired.
* Fixed incorrect calling of is_404 that caused intermittent issues.
* Fixed basedir warnings when scan tries to scan files it does not have access to.
* Fixed warning and incorrect calculation of rows in DB.
* Added ability to get IP from "HTTP_X_REAL_IP" header of a front-end proxy is sending it.
* Fixed warning about HTTPS element not existing in getRequestedURL()
* Fixed problem with paid vs free keys getting confused.
* Fixed error with fetching vulnerability patterns.
= 3.0.8 =
* Fixed bug that caused "Could not get the administrator’s user ID. Scan can’t continue."
= 3.0.7 =
* Fixed bug that caused scan to loop, stop halfway or not start for many sites.
* Fix bug that caused scan to not start on sites with thousands (over 20,000 in one case) users.
* Scan start is now faster for sites with large numbers of users.
* Fix bug that caused scan to get killed when checking passwords on sites with thousands of users.
* Wordfence Security now intelligently determines how to do a loopback request to kick off a scan.
* Scan is no longer called with a cron key in HTTP header but uses a query string value to authenticate itself which is more reliable.
= 3.0.6 =
* Improved malware and phishing URL detection.
* Upgraded to Wordfence Security API version 1.9
* Fixed issue that caused large files to slow or crash a scan.
* Added workaround for PHP's broken filesize() function on 32 bit systems.
* Added an improved test mode for URL scanner for better unit testing on our end.
* Suppressed warnings issued when a reverse DNS lookup fails.
* Added improved debug output to becomeAdmin() function in scans to help diagnose scans not starting.
= 3.0.5 =
* Fixed "The key used to start a scan has expired." error and added data to help diagnose future issues like this.
* Removed HTTPHeaders from wfHits table which was using a lot of disk space and not used much.
* Removed limiting wfHits table size because it was unreliable.
* We're now limiting wfHits to 20,000 rows and the rows are much smaller. About 2 to 8 megs.
* Fixed bug that could have caused install routine to run repeatedly.
* Fixed typo bug in blocking code that didn't have any impact but was sloppy.
* Changed wfscan.php message when accessed directly to be more helpful.
= 3.0.4 =
* Detects if the Wordfence Security app (not scanner) is short on memory and requests more
* Fixes an issue where scan breaks if all scanning options are disabled
= 3.0.3 =
* Issue that caused all core files to show as missing has been fixed.
* We now handle all API server errors gracefully using exceptions.
* If your installation didn't activate correctly you now get a friendly message.
* Removed unused menu_config.php code.
* The 503 message now tells you why your access to the site has been limited so that admin's can tune firewall rules better.
* We no longer reuse the WordPress wpdb handle because we get better stability with our own connection.
= 3.0.2 =
* Overall this release is a very important upgrade. It drastically reduces memory usage on systems with large files from hundreds of megs to around 8 megs max memory used per scan.
* Moved queue of files that get processed to a new DB table to save memory.
* Reduced max size of tables before we truncate to avoid long DB queries.
* Reduced max size of wfStatus table from 100,000 rows to 1,000 rows.
* Introduced feature to kill hung or crashed scans reliably.
* Made scan locking much more reliable to avoid multiple concurrent scans hogging resources.
* Debug status messages are no longer written to the DB in non-debug mode.
* Modified the list of unknown files we receive back from the WF scanning servers to be a packed string rather than an array which is more memory efficient.
* Added summary at the end of scans to show the peak memory that Wordfence Security used along with server peak memory.
* Hashes are now progressively sent to Wordfence Security servers during scan to drastically reduce memory usage.
* Upgraded to Wordfence Security server API version 1.8
* List of hosts that Wordfence Security URL scanner compiles now uses wfArray which is a very memory efficient packed binary structure.
* Writes that WF URL scanner makes to the DB are now batched into bulk inserts to reduce load on DB.
* Fixed bug in wfscan.php (scanning script) that could have caused scans to loop or pick up old data.
* Massively reduced the number of status messages we log, but kept very verbose logging for debug mode with a warning about DB load.
* Added summary messages instead of individual file scanning status messages which show files scanned and scan rate.
* Removed bin2hex and hex2bin conversions for scanning data which were slow, memory heavy and unneeded.
* Wordfence Security database class will now reuse the WordPress database handle from $wpdb if it can to reduce DB connections.
= 2.1.5 =
* Fixed bug that caused WF to not work when certain DB caching plugins are used and override wpdb object.
* Fixed Wordfence Security so activity log only shows our own errors unless in debug mode.
* Wordfence Security now deletes all it's tables and deletes all saved options when you deactivate the plugin.
* Removed all exit() on error statements. Critical errors are handled more gracefully by writing to the log instead.
* Fixed a bug that would cause a database loop until running out of memory under certain error conditions.