نکات امنیتی در کدهای وردپرس
۱. Sanitization (پاکسازی دادهها)
$safe_input = sanitize_text_field( $_POST[‘user_input’] );
۲. Validation (اعتبارسنجی دادهها)
if ( is_email( $email ) ) {
// valid email
}
۳. Escaping (خروجیگیری ایمن)
echo esc_html( $user_input );
echo esc_url( $url );
echo esc_attr( $attribute );
۴. Nonces (برای اعتبارسنجی درخواستها)
wp_nonce_field( ‘my_action’, ‘my_nonce’ );
if ( ! isset( $_POST[‘my_nonce’] ) || ! wp_verify_nonce( $_POST[‘my_nonce’], ‘my_action’ ) ) {
wp_die( ‘Security check failed!’ );
}
۵. Capabilities & Capabilities Check
if ( current_user_can( ‘manage_options’ ) ) {
// user has permission
}
۶. SQL Injection Protection
استفاده از $wpdb
به صورت صحیح:
$wpdb->get_results( $wpdb->prepare( “SELECT * FROM table WHERE id = %d”, $id ) );
۷. XSS Protection
استفاده از توابع esc_*
در خروجیها:
echo ‘<a href=“‘ . esc_url( $link ) . ‘”>’ . esc_html( $title ) . ‘</a>’;
۸. CSRF Protection
استفاده از Nonce در فرمها و اکشنها:
wp_nonce_url( admin_url( ‘admin-post.php?action=my_action’ ), ‘my_action’ );