Changeset 715022
- Timestamp:
- 05/18/2013 05:53:15 PM (13 years ago)
- Location:
- better-wp-security
- Files:
-
- 69 added
- 7 edited
-
tags/3.5 (added)
-
tags/3.5/backups (added)
-
tags/3.5/backups/.htaccess (added)
-
tags/3.5/backups/index.php (added)
-
tags/3.5/better-wp-security.php (added)
-
tags/3.5/images (added)
-
tags/3.5/images/index.php (added)
-
tags/3.5/images/shield-large.png (added)
-
tags/3.5/images/shield-small.png (added)
-
tags/3.5/inc (added)
-
tags/3.5/inc/admin (added)
-
tags/3.5/inc/admin/common.php (added)
-
tags/3.5/inc/admin/construct.php (added)
-
tags/3.5/inc/admin/content.php (added)
-
tags/3.5/inc/admin/css (added)
-
tags/3.5/inc/admin/css/style.css (added)
-
tags/3.5/inc/admin/hackrepair-apache.inc (added)
-
tags/3.5/inc/admin/hackrepair-nginx.inc (added)
-
tags/3.5/inc/admin/index.php (added)
-
tags/3.5/inc/admin/process.php (added)
-
tags/3.5/inc/admin/tables.php (added)
-
tags/3.5/inc/admin/wpcontent.php (added)
-
tags/3.5/inc/auth.php (added)
-
tags/3.5/inc/backup.php (added)
-
tags/3.5/inc/filecheck.php (added)
-
tags/3.5/inc/index.php (added)
-
tags/3.5/inc/secure.php (added)
-
tags/3.5/inc/setup.php (added)
-
tags/3.5/index.php (added)
-
tags/3.5/languages (added)
-
tags/3.5/languages/better-wp-security-es_ES.mo (added)
-
tags/3.5/languages/better-wp-security-es_ES.po (added)
-
tags/3.5/languages/better-wp-security-fr_FR.mo (added)
-
tags/3.5/languages/better-wp-security-fr_FR.po (added)
-
tags/3.5/languages/better-wp-security-fr_FR_HI.mo (added)
-
tags/3.5/languages/better-wp-security-fr_FR_HI.po (added)
-
tags/3.5/languages/better-wp-security-lt_LT.mo (added)
-
tags/3.5/languages/better-wp-security-lt_LT.po (added)
-
tags/3.5/languages/better-wp-security-ru_RU.mo (added)
-
tags/3.5/languages/better-wp-security-ru_RU.po (added)
-
tags/3.5/languages/better-wp-security-sk_SK.mo (added)
-
tags/3.5/languages/better-wp-security-sk_SK.po (added)
-
tags/3.5/languages/better-wp-security-tl_TL.mo (added)
-
tags/3.5/languages/better-wp-security-tl_TL.po (added)
-
tags/3.5/languages/better-wp-security.pot (added)
-
tags/3.5/languages/index.php (added)
-
tags/3.5/lib (added)
-
tags/3.5/lib/bit51 (added)
-
tags/3.5/lib/bit51/bit51.css (added)
-
tags/3.5/lib/bit51/bit51.php (added)
-
tags/3.5/lib/bit51/foolic_validation_v1_1.php (added)
-
tags/3.5/lib/bit51/images (added)
-
tags/3.5/lib/bit51/images/bit51-small.png (added)
-
tags/3.5/lib/bit51/images/bit51.png (added)
-
tags/3.5/lib/bit51/images/facebook.png (added)
-
tags/3.5/lib/bit51/images/google.png (added)
-
tags/3.5/lib/bit51/images/index.php (added)
-
tags/3.5/lib/bit51/images/subscribe.png (added)
-
tags/3.5/lib/bit51/images/twitter.png (added)
-
tags/3.5/lib/bit51/index.php (added)
-
tags/3.5/lib/index.php (added)
-
tags/3.5/readme.txt (added)
-
tags/3.5/screenshot-1.png (added)
-
tags/3.5/screenshot-2.png (added)
-
tags/3.5/screenshot-3.png (added)
-
tags/3.5/screenshot-4.png (added)
-
trunk/better-wp-security.php (modified) (3 diffs)
-
trunk/inc/admin/content.php (modified) (3 diffs)
-
trunk/inc/backup.php (modified) (1 diff)
-
trunk/inc/secure.php (modified) (2 diffs)
-
trunk/inc/setup.php (modified) (11 diffs)
-
trunk/languages/better-wp-security-tr_TR.mo (added)
-
trunk/languages/better-wp-security-tr_TR.po (added)
-
trunk/lib/bit51/bit51.php (modified) (4 diffs)
-
trunk/lib/bit51/foolic_validation_v1_1.php (added)
-
trunk/readme.txt (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
better-wp-security/trunk/better-wp-security.php
r700270 r715022 4 4 Plugin URI: http://bit51.com/software/better-wp-security/ 5 5 Description: Helps protect your Wordpress installation from attackers. Hardens standard Wordpress security by hiding vital areas of your site, protecting access to important files via htaccess, preventing brute-force login attempts, detecting attack attempts, and more. 6 Version: 3. 4.106 Version: 3.5 7 7 Text Domain: better-wp-security 8 8 Domain Path: /languages … … 20 20 class bit51_bwps extends bit51 { 21 21 22 public $pluginversion = '306 0'; //current plugin version22 public $pluginversion = '3061'; //current plugin version 23 23 24 24 //important plugin information … … 162 162 require_once( BWPS_PP . 'inc/secure.php' ); 163 163 $bwps = new bwps_secure(); 164 165 if ( $bwpsdata['version'] != $this->pluginversion || get_option( 'BWPS_options' ) != false ) {166 new bwps_setup( 'activate' );164 165 if ( $bwpsdata['version'] != $this->pluginversion || get_option( 'BWPS_options' ) != false ) { 166 new bwps_setup( 'activate', true ); 167 167 } 168 169 } 168 169 parent::init(); 170 } 170 171 171 172 } -
better-wp-security/trunk/inc/admin/content.php
r690782 r715022 953 953 <li> 954 954 <h4><?php _e( 'Server Information', $this->hook ); ?></h4> 955 <?php $server_addr = array_key_exists('SERVER_ADDR',$_SERVER) ? $_SERVER['SERVER_ADDR'] : $_SERVER['LOCAL_ADDR']; ?> 955 956 <ul> 956 <li><?php _e( 'Server / Website IP Address', $this->hook ); ?>: <strong><a target="_blank" title="<?php _e( 'Get more information on this address', $this->hook ); ?>" href="http://whois.domaintools.com/<?php echo $ _SERVER['SERVER_ADDR']; ?>"><?php echo $_SERVER['SERVER_ADDR']; ?></a></strong></li>957 <li><?php _e( 'Server / Website IP Address', $this->hook ); ?>: <strong><a target="_blank" title="<?php _e( 'Get more information on this address', $this->hook ); ?>" href="http://whois.domaintools.com/<?php echo $server_addr; ?>"><?php echo $server_addr; ?></a></strong></li> 957 958 <li><?php _e( 'Server Type', $this->hook ); ?>: <strong><?php echo filter_var( filter_var( $_SERVER['SERVER_SOFTWARE'], FILTER_SANITIZE_STRING ), FILTER_SANITIZE_STRING ); ?></strong></li> 958 959 <li><?php _e( 'Operating System', $this->hook ); ?>: <strong><?php echo PHP_OS; ?></strong></li> … … 2747 2748 <td class="settingfield"> 2748 2749 <select name="st_passrole" id="st_passrole"> 2749 <option value="administrator" <?php if ( $bwpsoptions['st_passrole'] == "administrator" ) echo "selected"; ?>><? echo translate_user_role("Administrator"); ?></option>2750 <option value="editor" <?php if ( $bwpsoptions['st_passrole'] == "editor" ) echo "selected"; ?>><? echo translate_user_role("Editor"); ?></option>2751 <option value="author" <?php if ( $bwpsoptions['st_passrole'] == "author" ) echo "selected"; ?>><? echo translate_user_role("Author"); ?></option>2752 <option value="contributor" <?php if ( $bwpsoptions['st_passrole'] == "contributor" ) echo "selected"; ?>><? echo translate_user_role("Contributor"); ?></option>2753 <option value="subscriber" <?php if ( $bwpsoptions['st_passrole'] == "subscriber" ) echo "selected"; ?>><? echo translate_user_role("Subscriber"); ?></option>2750 <option value="administrator" <?php if ( $bwpsoptions['st_passrole'] == "administrator" ) echo "selected"; ?>><?php echo translate_user_role( 'Administrator' ); ?></option> 2751 <option value="editor" <?php if ( $bwpsoptions['st_passrole'] == "editor" ) echo "selected"; ?>><?php echo translate_user_role( 'Editor' ); ?></option> 2752 <option value="author" <?php if ( $bwpsoptions['st_passrole'] == "author" ) echo "selected"; ?>><?php echo translate_user_role( 'Author' ); ?></option> 2753 <option value="contributor" <?php if ( $bwpsoptions['st_passrole'] == "contributor" ) echo "selected"; ?>><?php echo translate_user_role( 'Contributor' ); ?></option> 2754 <option value="subscriber" <?php if ( $bwpsoptions['st_passrole'] == "subscriber" ) echo "selected"; ?>><?php echo translate_user_role( 'Subscriber' ); ?></option> 2754 2755 </select> 2755 2756 <p><?php _e( 'Minimum role at which a user must choose a strong password. For more information on WordPress roles and capabilities please see', $this->hook ); ?> <a href="http://codex.wordpress.org/Roles_and_Capabilities" target="_blank">http://codex.wordpress.org/Roles_and_Capabilities</a>.</p> … … 2849 2850 2850 2851 } 2851 -
better-wp-security/trunk/inc/backup.php
r621519 r715022 90 90 91 91 $row[$j] = addslashes( $row[$j] ); 92 $row[$j] = ereg_replace( PHP_EOL, "\n", $row[$j] );92 $row[$j] = preg_replace( PHP_EOL, "\n", $row[$j] ); 93 93 94 94 if ( isset( $row[$j] ) ) { -
better-wp-security/trunk/inc/secure.php
r690782 r715022 18 18 19 19 if ( $data ) { 20 $unserialized_data = unserialize( $data );20 $unserialized_data = @unserialize( $data ); 21 21 if ( isset( $unserialized_data['iwp_action'] ) ) { 22 22 $iwp_action = $unserialized_data['iwp_action']; … … 894 894 **/ 895 895 function remove_script_version( $src ){ 896 897 $parts = explode( '?', $src ); 898 return $parts[0]; 896 897 if ( strpos( $src, 'ver=' ) ) { 898 return substr( $src, 0, strpos( $src, 'ver=' ) - 1 ); 899 } else { 900 return $src; 901 } 899 902 900 903 } -
better-wp-security/trunk/inc/setup.php
r640277 r715022 7 7 class bwps_setup extends bwps_admin_common { 8 8 9 private $update; 10 9 11 /** 10 12 * Establish setup object … … 15 17 * 16 18 **/ 17 function __construct( $case = false ) {19 function __construct( $case = false, $updating = false ) { 18 20 19 21 if ( ! $case ) { … … 23 25 switch($case) { 24 26 case 'activate': //active plugin 25 $this->activate_execute( );27 $this->activate_execute( $updating ); 26 28 break; 27 29 28 30 case 'deactivate': //deactivate plugin 29 $this->deactivate_execute( );31 $this->deactivate_execute( $updating ); 30 32 break; 31 33 … … 34 36 break; 35 37 } 38 36 39 } 37 40 … … 75 78 76 79 /** 77 * Activate execution 78 * 79 **/ 80 function activate_execute() { 80 * Execute activation 81 * 82 * @param boolean $updating true if the plugin is updating 83 * @return void 84 */ 85 function activate_execute( $updating = false ) { 81 86 global $wpdb; 82 87 … … 90 95 91 96 } 92 93 $oldversion = $bwpsdata['version']; // set newversion number97 98 $oldversion = $bwpsdata['version']; //get old version number 94 99 $bwpsdata['version'] = $this->pluginversion; //set new version number 95 100 … … 109 114 110 115 //update if version numbers don't match 111 if ( ( $oldversion != '' && $oldversion != $this->pluginversion ) || get_option( 'BWPS_options' ) != false ) {116 if ( $updating === true ) { 112 117 $this->update_execute( $oldversion ); 113 118 } … … 185 190 186 191 } 187 188 if ( ( strstr( strtolower( filter_var( $_SERVER['SERVER_SOFTWARE'], FILTER_SANITIZE_STRING ) ), 'apache' ) || strstr( strtolower( filter_var( $_SERVER['SERVER_SOFTWARE'], FILTER_SANITIZE_STRING ) ), 'litespeed' ) ) && $bwpsoptions['st_writefiles'] == 1 ) { //if they're using apache write to .htaccess 189 190 $this->writehtaccess(); 191 192 } 193 194 if ( $bwpsoptions['st_writefiles'] == 1 ) { 195 196 $this->writewpconfig(); //write appropriate options to wp-config.php 197 198 } 199 200 } 201 202 /** 203 * Update execution 204 * 205 **/ 206 function update_execute($oldversion = '') { 192 193 if ( $updating === false ) { 194 195 if ( ( strstr( strtolower( filter_var( $_SERVER['SERVER_SOFTWARE'], FILTER_SANITIZE_STRING ) ), 'apache' ) || strstr( strtolower( filter_var( $_SERVER['SERVER_SOFTWARE'], FILTER_SANITIZE_STRING ) ), 'litespeed' ) ) && $bwpsoptions['st_writefiles'] == 1 ) { //if they're using apache write to .htaccess 196 197 $this->writehtaccess(); 198 199 } 200 201 if ( $bwpsoptions['st_writefiles'] == 1 ) { 202 203 $this->writewpconfig(); //write appropriate options to wp-config.php 204 205 } 206 207 } 208 209 } 210 211 /** 212 * Update Execution 213 * 214 * @param string $oldversion Old version number 215 * @return void 216 */ 217 function update_execute( $oldversion = '' ) { 207 218 global $wpdb, $bwpsoptions; 208 219 … … 372 383 if ( wp_next_scheduled( 'bwps_backup' ) ) { 373 384 wp_clear_scheduled_hook( 'bwps_backup' ); 374 } 385 } 375 386 376 387 } … … 452 463 453 464 } 454 455 } 456 457 if ( ( strstr( strtolower( filter_var( $_SERVER['SERVER_SOFTWARE'], FILTER_SANITIZE_STRING ) ), 'apache' ) || strstr( strtolower( filter_var( $_SERVER['SERVER_SOFTWARE'], FILTER_SANITIZE_STRING ) ), 'litespeed' ) ) && $bwpsoptions['st_writefiles'] == 1 ) { //if they're using apache write to .htaccess 458 459 $this->writehtaccess(); 460 461 } 462 463 if ( $bwpsoptions['st_writefiles'] == 1 ) { 464 465 $this->writewpconfig(); //write appropriate options to wp-config.php 466 465 466 if ( str_replace( '.', '', $oldversion ) < 3059 ) { 467 468 469 $this->writehtaccess(); 470 471 if ( $bwpsoptions['st_writefiles'] == 1 ) { 472 473 $this->writewpconfig(); //write appropriate options to wp-config.php 474 475 } 476 477 } 478 467 479 } 468 480 … … 473 485 * 474 486 **/ 475 function deactivate_execute( ) {487 function deactivate_execute( $updating = false ) { 476 488 477 489 if ( wp_next_scheduled( 'bwps_backup' ) ) { -
better-wp-security/trunk/lib/bit51/bit51.php
r700270 r715022 7 7 */ 8 8 9 require_once( plugin_dir_path( __FILE__ ) . 'foolic_validation_v1_1.php' ); 10 9 11 if ( ! class_exists( 'Bit51' ) ) { 10 12 11 13 abstract class Bit51 { 12 14 13 15 var $feed = 'http://bit51.com/feed'; //current address of Bit51.com feed 16 var $support_email = '[email protected]'; //current email address of Bit51.com support 17 18 /** 19 * Runs any init code needed 20 * 21 **/ 22 function init() { 23 add_filter( 'foolic_validation_include_css-' . $this->hook, array( &$this, 'include_foolic_css' ) ); 24 add_filter( 'foolic_validation_input_type-' . $this->hook, array( &$this, 'change_foolic_input_type' ) ); 25 add_filter( 'foolic_validation_input_size-' . $this->hook, array( &$this, 'change_foolic_input_size' ) ); 26 new foolic_validation_v1_1( 'http://fooplugins.com/api/better-wp-security/check', $this->hook ); 27 add_action('wp_ajax_' . $this->hook . '_support', array($this, 'ajax_submit_ticket')); 28 } 14 29 15 30 /** … … 313 328 <div class="meta-box-sortables"> 314 329 <?php 330 do_action( 'bit51_metaboxes', $this->hook ); 331 $this->support(); 315 332 $this->donate(); 316 $this->support();317 333 $this->news(); 318 334 $this->social(); … … 332 348 **/ 333 349 function support() { 334 335 $content = __('If you need help getting this plugin or have found a bug please visit the <a href="' . $this->supportpage . '" target="_blank">support forums</a>.', $this->hook); 336 337 $this->postbox( 'bit51support', __( 'Need Help?', $this->hook ), $content ); //execute as postbox 350 $purchase_url = 'http://fooplugins.com/plugins/better-wp-security/'; 351 352 $data = apply_filters( 'foolic_get_validation_data-' . $this->hook, false ); 353 354 if ( $data === false ) { 355 return; 356 } 357 358 if ( $data['valid'] === 'valid' ) { 359 $content = '<form id="support_form">'; 360 $content .= '<input type="hidden" name="action" value="' . $this->hook . '_support" />'; 361 $content .= '<input type="hidden" name="nonce" value="' . wp_create_nonce($this->hook . '_ajax-nonce') . '" />'; 362 $content .= '<input type="hidden" name="ticket_key" value="' . $data['license'] . '" />'; 363 $content .= '<label for="support_issue">' . __( 'Describe the Issue', $this->hook ). ':</label><textarea name="issue" style="height:100px; display:block; width:100%; border:solid 1px #aaa;" class="regular-text" id="support_issue"></textarea>'; 364 $content .= '<label for="support_reproduce">' . __( 'Steps to Reproduce', $this->hook ). ':</label><textarea name="reproduce" style="height:200px; display:block; width:100%; border:solid 1px #aaa;" class="regular-text" id="support_reproduce"></textarea>'; 365 $content .= '<label for="support_other">' . __( 'Other Information', $this->hook ). ':</label><textarea name="other" style="height:100px; display:block; width:100%; border:solid 1px #aaa;" class="regular-text" id="support_other"></textarea><br />'; 366 $content .= '<input id="submit_support" type="button" class="button-primary" value="' . __( 'Submit Support Ticket', $this->hook ) . '" /><br />'; 367 $content .= '<br /></form>'; 368 $content .= '<div style="display:none" class="support_message foolic-loading"><p>' . __( 'sending...', $this->hook ). '</p></div>'; 369 $content .= '<a target="_blank" href="' . $purchase_url . '">' . __( 'Purchase priority support', $this->hook ) . '</a>'; 370 $content .= ' | <a href="#newkey" class="foolic-clear-' . $this->hook . '">' . __( 'Enter License Key', $this->hook ) . '</a>'; 371 $content .= $data['nonce']; 372 373 374 } else { 375 376 $content = '<strong>' . __( 'Need premium support or configuration?', $this->hook ). '<br /><br /><a target="_blank" href="' . $purchase_url .'">' . __( 'Purchase one-time premium support or installation', $this->hook ) . '</a>.</strong><br /><br />'; 377 $content .= $data['html']; 378 379 } 380 381 $content .= '<script type="text/javascript"> 382 jQuery( function( $ ) { 383 $( document ).bind( "foolic-cleared-' . $this->hook . '", function() { 384 window.location.reload(); 385 } ); 386 387 $("#submit_support").click(function(e) { 388 e.preventDefault(); 389 390 if ($("#support_issue").val().length == 0) { 391 alert("' . __( 'Please describe the issue you are having', $this->hook ). '"); 392 return; 393 } 394 $("#support_form").slideUp(); 395 var data = $("#support_form").serialize(); 396 397 $(".support_message").addClass("updated").show(); 398 399 $.ajax({ url: ajaxurl, cache: false, type: "POST", data: data, 400 success: function (data) { 401 $(".support_message").removeClass("foolic-loading").html("<p>' . __( 'Thank you for submitting your support ticket. We will contact you shortly.', $this->hook ) . '</p>"); 402 }, 403 error: function(a,b,c) { 404 alert(a); 405 } 406 }); 407 } ); 408 } ); 409 </script>'; 410 411 $this->postbox( 'prioritysupport', __( 'Premium Support' , $this->hook ), $content ); //setup the postbox 338 412 339 413 } … … 508 582 509 583 } 510 584 585 function include_foolic_css( $screen ) { 586 return $screen->id === 'toplevel_page_better-wp-security'; 587 } 588 589 function change_foolic_input_type() { 590 return 'text'; 591 } 592 593 function change_foolic_input_size() { 594 return '29'; 595 } 596 597 function ajax_submit_ticket() { 598 global $wp_version; 599 global $current_user; 600 601 if (wp_verify_nonce($_REQUEST['nonce'], $this->hook . '_ajax-nonce')) { 602 $issue = $_REQUEST['issue']; 603 $reproduce = $_REQUEST['reproduce']; 604 $other = $_REQUEST['other']; 605 $ticket_key = $_REQUEST['ticket_key']; 606 get_currentuserinfo(); 607 608 $message = '<table> 609 <tr><td>' . __('Issue', $this->hook) . '</td><td>' . $issue . '</td></tr> 610 <tr><td>' . __('Steps to Reproduce', $this->hook) . '</td><td>' . $reproduce . '</td></tr> 611 <tr><td>' . __('Other Information', $this->hook) . '</td><td>' . $other . '</td></tr> 612 <tr><td>' . __('Support Ticket Key', $this->hook) . '</td><td>' . $ticket_key . '</td></tr> 613 <tr><td>' . __('Plugin Version', $this->hook) . '</td><td>' . $this->pluginversion . '</td></tr> 614 <tr><td>' . __('WP Version', $this->hook) . '</td><td>' . $wp_version . '</td></tr> 615 <tr><td>' . __('Website', $this->hook) . '</td><td>' . home_url() . '</td></tr> 616 <tr><td>' . __('Email', $this->hook) . '</td><td>' . $current_user->user_email . '</td></tr> 617 <tr><td>' . __('Name', $this->hook) . '</td><td>' . $current_user->display_name . '</td></tr> 618 </table>'; 619 620 add_filter( 'wp_mail_content_type', array($this, 'set_html_content_type' ) ); 621 wp_mail( 622 $this->support_email, 623 __('Better WP Security Support Ticket', $this->hook), 624 $message 625 ); 626 remove_filter( 'wp_mail_content_type', array($this, 'set_html_content_type' ) ); // reset content-type to to avoid conflicts 627 } 628 } 629 630 function set_html_content_type() { 631 return 'text/html'; 632 } 511 633 } 512 634 -
better-wp-security/trunk/readme.txt
r700270 r715022 3 3 Contributors: Bit51 4 4 Donate link: http://bit51.com/software/better-wp-security/ 5 Tags: security, secure, multi-site, network, mu, login, lockdown, htaccess, hack, header, cleanup, ban, restrict, access, protect, protection, disable, images, image, hotlink, admin, username, database, prefix, wp-content, rename, directory, directories, secure, SSL 6 Requires at least: 3. 47 Tested up to: 3. 5.18 Stable tag: 3. 4.105 Tags: security, secure, multi-site, network, mu, login, lockdown, htaccess, hack, header, cleanup, ban, restrict, access, protect, protection, disable, images, image, hotlink, admin, username, database, prefix, wp-content, rename, directory, directories, secure, SSL, FooPlugins 6 Requires at least: 3.5 7 Tested up to: 3.6 8 Stable tag: 3.5 9 9 10 10 The easiest, most effective way to secure WordPress. Improve the security of any WordPress site in seconds. … … 85 85 * Spanish by <a href="http://pabloromero.org">Pablo Romero</a> 86 86 * Tagalog by <a href="http://pointen.dk/">Hanne</a> 87 88 Note I have removed all translations that were not compatible with version 3+. Please let me know if you would like to add a translation. 87 * Turkish by <a href="http://hakanertr.wordpress.com">Hakan Er</a> 88 89 Please <A href="http://bit51.com/contact" target="_blank">let us know</a> if you would like to contribute a translation. 89 90 90 91 = Warning = … … 93 94 94 95 == Installation == 96 97 Don't want to configure Better WP Security yourself but still want to make sure your site is secure as possible? <a href="http://fooplugins.com/plugins/better-wp-security/" target="_blank">Purchase premium installation and configuration for Better WP Security</a> 95 98 96 99 1. Backup your Wordpress database, config file, and .htaccess file … … 142 145 143 146 = Where can I get help if something goes wrong? = 144 * As I do not have a support staff and this plugin is one of many projects I am involved with I do not guarantee support at all. There is no warranty and if something goes wrong I make no promise of assistance. That said, I do my best to check the WordPress.org support forums every 2 -3 days and respond to all queries. I will not answer any support requests sent to me through any other method.147 * Free support is available by reading the <a href="http://bit51.com/software/better-wp-security/" target="_blank">plugin documentation</a> or may be available with the help of the community in the <a href="http://wordpress.org/support/plugin/better-wp-security" target="_blank">WordPress.org support forums</a> (this is community provided support as Bit51 does not monitor the WordPress.org support forums). If you need more formal support you can <a href="http://fooplugins.com/plugins/better-wp-security/" target="_blank">purchase a premium support ticket</a> on a per-incident basis. 145 148 146 149 == Screenshots == … … 152 155 153 156 == Changelog == 157 158 = 3.5 = 159 * Integrate with Foo Plugins support system 160 * Fixed role translation call for Strong password enforcement 161 * Turkish by <a href="http://hakanertr.wordpress.com">Hakan Er</a> 162 * Random version number no longer strips unrelated GET variables for better compatibility 163 * Upgrading no longer automatically rewrites .htaccess and wp-config resulting in much improved reliability 164 * Fixed possible error when login fails and PHP is set to report errors to screen 154 165 155 166 = 3.4.10 =
Note: See TracChangeset
for help on using the changeset viewer.