| @@ -1,8 +1,13 @@ | ||
| 1 | 1 | <?php |
| 2 | +// phpcs:disable WordPress.DB.SlowDBQuery.slow_db_query_tax_query -- core block query; tax filtering required. | |
| 3 | +namespace WPDeveloper\BetterDocs\Editors\BlockEditor\Blocks; | |
| 2 | 4 | |
| 3 | -namespace WPDeveloper\BetterDocs\Editors\BlockEditor\Blocks; | |
| 5 | +if ( ! defined( 'ABSPATH' ) ) { | |
| 6 | + exit; | |
| 7 | +} | |
| 4 | 8 | |
| 9 | + | |
| 5 | 10 | use WPDeveloper\BetterDocs\Editors\BlockEditor\Block; |
| 6 | 11 | |
| 7 | 12 | class ArchiveList extends Block { |
| 8 | 13 | |
| @@ -57,8 +62,11 @@ | ||
| 57 | 62 | // This method can be overridden by Pro version |
| 58 | 63 | } |
| 59 | 64 | |
| 60 | 65 | public function view_params() { |
| 66 | + // Sanitize the layout attribute to prevent path traversal (LFI). | |
| 67 | + $this->attributes['layout'] = sanitize_file_name( $this->attributes['layout'] ); | |
| 68 | + | |
| 61 | 69 | global $wp_query; |
| 62 | 70 | $_term_slug = ''; |
| 63 | 71 | if ( isset( $wp_query->query ) && array_key_exists( 'doc_category', $wp_query->query ) ) { |
| 64 | 72 | $_term_slug = $wp_query->query['doc_category']; |