PluginProbe ʕ •ᴥ•ʔ
SiteGuard WP Plugin / 1.8.7
SiteGuard WP Plugin v1.8.7
1.8.7 1.8.6 1.8.6-beta1 1.8.6-beta2 1.8.4 1.8.5 1.8.3 1.8.2 1.8.1 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.2.0 1.2.1 1.2.2 1.2.3 1.4.3 1.5.0 1.5.1 1.5.2 1.6.0 1.6.1 1.7.0 1.7.1 1.7.10 1.7.11 1.7.12 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9 1.8.0 1.8.0-beta1 1.8.0-beta2 1.8.0-beta3 1.8.0-beta4
siteguard / admin / siteguard-menu-protect-xmlrpc.php
siteguard / admin Last commit date
siteguard-login-history-table.php 1 month ago siteguard-menu-admin-filter.php 4 weeks ago siteguard-menu-author-query.php 2 weeks ago siteguard-menu-captcha.php 4 weeks ago siteguard-menu-dashboard.php 4 weeks ago siteguard-menu-fail-once.php 4 weeks ago siteguard-menu-init.php 1 month ago siteguard-menu-login-alert.php 4 weeks ago siteguard-menu-login-history.php 4 weeks ago siteguard-menu-login-lock.php 4 weeks ago siteguard-menu-protect-xmlrpc.php 4 weeks ago siteguard-menu-rename-login.php 2 weeks ago siteguard-menu-same-error.php 4 weeks ago siteguard-menu-updates-notify.php 4 weeks ago siteguard-menu-waf-tuning-support.php 4 weeks ago siteguard-waf-exclude-rule-table.php 1 month ago
siteguard-menu-protect-xmlrpc.php
155 lines
1 <?php
2
3 class SiteGuard_Menu_Protect_XMLRPC extends SiteGuard_Base {
4 const OPT_NAME_FEATURE = 'protect_xmlrpc_enable';
5 const OPT_NAME_TYPE = 'protect_xmlrpc_type';
6 const OPT_NAME_XMLRPC = 'disable_xmlrpc_enable';
7 const OPT_NAME_PINGBACK = 'disable_pingback_enable';
8
9 protected $opt_val_xmlrpc;
10 protected $opt_val_pingback;
11 protected $opt_val_feature;
12 protected $opt_val_type;
13
14 function __construct() {
15 $this->render_page();
16 }
17 function is_switch_value( $value ) {
18 $items = array( '0', '1' );
19 if ( in_array( $value, $items ) ) {
20 return true;
21 }
22 return false;
23 }
24 function db_to_page() {
25 if ( '0' === $this->opt_val_xmlrpc ) {
26 if ( '0' === $this->opt_val_pingback ) {
27 $this->opt_val_feature = '0';
28 $this->opt_val_type = '0';
29 } else {
30 $this->opt_val_feature = '1';
31 $this->opt_val_type = '0';
32 }
33 } else {
34 $this->opt_val_feature = '1';
35 $this->opt_val_type = '1';
36 }
37 }
38 function page_to_db() {
39 if ( '0' === $this->opt_val_feature ) {
40 $this->opt_val_xmlrpc = '0';
41 $this->opt_val_pingback = '0';
42 } elseif ( '0' === $this->opt_val_type ) {
43 $this->opt_val_xmlrpc = '0';
44 $this->opt_val_pingback = '1';
45 } else {
46 $this->opt_val_xmlrpc = '1';
47 $this->opt_val_pingback = '0';
48 }
49 }
50 function render_page() {
51 global $siteguard_config, $siteguard_xmlrpc;
52
53 $this->opt_val_xmlrpc = $siteguard_config->get( self::OPT_NAME_XMLRPC );
54 $this->opt_val_pingback = $siteguard_config->get( self::OPT_NAME_PINGBACK );
55
56 $this->db_to_page();
57
58 if ( isset( $_POST['update'] ) && check_admin_referer( 'siteguard-menu-protect-xmlrpc-submit' ) ) {
59 $error = false;
60 $errors = siteguard_check_multisite();
61 if ( is_wp_error( $errors ) ) {
62 echo '<div class="error settings-error"><p><strong>';
63 echo esc_html( $errors->get_error_message() );
64 echo '</strong></p></div>';
65 $error = true;
66 }
67 if ( false === $error
68 && ( ( false === $this->is_switch_value( $_POST[ self::OPT_NAME_FEATURE ] ) )
69 || ( false === $this->is_switch_value( $_POST[ self::OPT_NAME_TYPE ] ) ) ) ) {
70 echo '<div class="error settings-error"><p><strong>';
71 esc_html_e( 'ERROR: Invalid input value.', 'siteguard' );
72 echo '</strong></p></div>';
73 $error = true;
74 }
75 if ( false === $error ) {
76 $old_opt_val_feature = $this->opt_val_feature;
77 $old_opt_val_type = $this->opt_val_type;
78 $this->opt_val_feature = sanitize_text_field( $_POST[ self::OPT_NAME_FEATURE ] );
79 $this->opt_val_type = sanitize_text_field( $_POST[ self::OPT_NAME_TYPE ] );
80 $this->page_to_db();
81 $siteguard_config->set( self::OPT_NAME_XMLRPC, $this->opt_val_xmlrpc );
82 $siteguard_config->set( self::OPT_NAME_PINGBACK, $this->opt_val_pingback );
83 $siteguard_config->update();
84 if ( '0' === $this->opt_val_xmlrpc ) {
85 $siteguard_xmlrpc->feature_off();
86 } else {
87 $siteguard_xmlrpc->feature_on();
88 }
89 ?>
90 <div class="updated"><p><strong><?php esc_html_e( 'Options saved.', 'siteguard' ); ?></strong></p></div>
91 <?php
92 }
93 }
94
95 echo '<div class="wrap">';
96 echo '<img src="' . SITEGUARD_URL_PATH . 'images/sg_wp_plugin_logo_40.png" alt="SiteGuard Logo" />';
97 echo '<h2>' . esc_html__( 'Protect XML-RPC', 'siteguard' ) . '</h2>';
98 $documentation_link = '<a href="' . esc_url( __( 'https://www.jp-secure.com/siteguard_wp_plugin_en/howto/xmlrpc/', 'siteguard' ) ) . '" target="_blank">' . esc_html__( 'online documentation', 'siteguard' ) . '</a>';
99 echo '<div class="siteguard-description">'
100 . sprintf(
101 /* translators: %1$s: Link to the online documentation. */
102 esc_html__( 'See the %1$s.', 'siteguard' ),
103 $documentation_link
104 )
105 . '</div>';
106 ?>
107 <form name="form1" method="post" action="">
108
109 <table class="form-table">
110 <tr>
111 <th scope="row" colspan="2">
112 <ul class="siteguard-radios">
113 <li>
114 <input type="radio" name="<?php echo self::OPT_NAME_FEATURE; ?>" id="<?php echo self::OPT_NAME_FEATURE . '_on'; ?>" value="1" <?php checked( $this->opt_val_feature, '1' ); ?> >
115 <label for="<?php echo self::OPT_NAME_FEATURE . '_on'; ?>"><?php echo esc_html_e( 'ON', 'siteguard' ); ?></label>
116 </li><li>
117 <input type="radio" name="<?php echo self::OPT_NAME_FEATURE; ?>" id="<?php echo self::OPT_NAME_FEATURE . '_off'; ?>" value="0" <?php checked( $this->opt_val_feature, '0' ); ?> >
118 <label for="<?php echo self::OPT_NAME_FEATURE . '_off'; ?>"><?php echo esc_html_e( 'OFF', 'siteguard' ); ?></label>
119 </li>
120 </ul>
121 <?php
122 $error = siteguard_check_multisite();
123 if ( is_wp_error( $error ) ) {
124 echo '<p class="description">';
125 echo esc_html( $error->get_error_message() );
126 echo '</p>';
127 }
128 ?>
129 </th>
130 </tr><tr>
131 <th scope="row"><?php esc_html_e( 'Type', 'siteguard' ); ?></th>
132 <td>
133 <input type="radio" name="<?php echo self::OPT_NAME_TYPE; ?>" id="<?php echo self::OPT_NAME_TYPE . '_0'; ?>" value="0" <?php checked( $this->opt_val_type, '0' ); ?> >
134 <label for="<?php echo self::OPT_NAME_TYPE . '_0'; ?>"><?php esc_html_e( 'Disable Pingback', 'siteguard' ); ?></label>
135 <br />
136 <input type="radio" name="<?php echo self::OPT_NAME_TYPE; ?>" id="<?php echo self::OPT_NAME_TYPE . '_1'; ?>" value="1" <?php checked( $this->opt_val_type, '1' ); ?> >
137 <label for="<?php echo self::OPT_NAME_TYPE . '_1'; ?>"><?php esc_html_e( 'Disable XML-RPC', 'siteguard' ); ?></label>
138 </td>
139 </tr>
140 </table>
141 <input type="hidden" name="update" value="Y">
142 <div class="siteguard-description">
143 <?php esc_html_e( 'Prevents abuse by disabling pingbacks or all XML-RPC access through xmlrpc.php. If you disable all XML-RPC access, plugins and apps that rely on XML-RPC will stop working. If this causes problems, turn this feature off.', 'siteguard' ); ?>
144 </div>
145 <hr />
146 <?php
147 wp_nonce_field( 'siteguard-menu-protect-xmlrpc-submit' );
148 submit_button();
149 ?>
150 </form>
151 </div>
152 <?php
153 }
154 }
155