yo,
spontan merke ich mal zwei "Sicherheitslücken" bei Wordpress an und fixe Diese für euch. Hauptsächlich geht es bei den Lücken darum, dass der Angreifer die Benutzernamen für den BE-Login herausfinden kann.
Um das zu verhindern, reichen zwei kleine Funktionen in der functions.php des jeweiligen (Child)-Themes aus.
spontan merke ich mal zwei "Sicherheitslücken" bei Wordpress an und fixe Diese für euch. Hauptsächlich geht es bei den Lücken darum, dass der Angreifer die Benutzernamen für den BE-Login herausfinden kann.
- An eine URL "/wp-json/wp/v2/users" anhängen, um eine Liste aller Nutzer zu bekommen.
- Die URL /?author=_id_ mit fortlaufender ID scannen. Existiert ein User mit der ID, wird automatisch auf dessen Seite weitergeleitet und dort sieht man in der URL den Loginnamen.
Um das zu verhindern, reichen zwei kleine Funktionen in der functions.php des jeweiligen (Child)-Themes aus.
Code:
function only_allow_logged_in_rest_access( $access ) {
if( ! is_user_logged_in() ) {
return new WP_Error( 'rest_cannot_access', __( 'Only authenticated users can access the REST API.', 'disable-json-api' ), array( 'status' => rest_authorization_required_code() ) );
}
return $access;
}
add_filter( 'rest_authentication_errors', 'only_allow_logged_in_rest_access' );
Code:
if (!is_admin()) {
// default URL format
if (preg_match('/author=([0-9]*)/i', $_SERVER['QUERY_STRING'])) die();
add_filter('redirect_canonical', 'shapeSpace_check_enum', 10, 2);
}
Code:
function shapeSpace_check_enum($redirect, $request) {
// permalink URL format
if (preg_match('/\?author=([0-9]*)(\/*)/i', $request)) die();
}