فهرست مطالب (5)
endpointهای سفارشی REST سریع ساخته میشوند و همین سرعت باعث میشود جزئیات امنیتی جا بماند. این پنج مورد در بررسیهای فنی بیشتر از همه تکرار میشوند.
permission_callback همیشه true
register_rest_route( 'hamidarab/v1', '/orders/(?P<id>\d+)', [
'methods' => WP_REST_Server::READABLE,
'callback' => 'hamidarab_get_order',
'permission_callback' => static fn ( $request ) => current_user_can( 'edit_shop_orders' ),
'args' => [
'id' => [ 'validate_callback' => static fn ( $v ) => is_numeric( $v ) ],
],
] );
__return_true فقط برای دادهای مناسب است که واقعاً عمومی است.
ورودی بدون sanitize و validate
برای هر آرگومان validate_callback و sanitize_callback تعریف کنید تا داده قبل از رسیدن به منطق شما تمیز شده باشد.
برگرداندن کل آبجکت
پاسخ را صریحاً بسازید و فقط فیلدهای لازم را برگردانید؛ برگرداندن کل آبجکت سفارش یا کاربر راه نشت داده است.
نبود nonce در درخواستهای مرورگر
درخواستهایی که با کوکی احراز هویت میشوند باید هدر X-WP-Nonce داشته باشند؛ وگرنه وردپرس آنها را مهمان فرض میکند.
نبود محدودیت نرخ
endpointهای عمومی که کار سنگین انجام میدهند، بدون محدودیت نرخ یا کش، راهی آسان برای از کار انداختن سایتاند.
$ ./request_review
همین مشکل را در فروشگاه خودتان دارید؟
توسعهدهنده ارشد WordPress و WooCommerce برای معماری، اتصال سیستمها و حل مسائل پیچیده production.
درخواست بررسی فنی
## دیدگاهها