Ticket #2496: 2496.patch
| File 2496.patch, 4.9 KB (added by , 12 years ago) |
|---|
-
includes/admin/functions.php
138 138 } 139 139 140 140 /** 141 * Sanitize permalink slugs when saving the settings page. 142 * 143 * @since bbPress (r5364) 144 * 145 * @param string $slug 146 * @return string 147 */ 148 function bbp_sanitize_slug( $slug = '' ) { 149 150 // Don't allow multiple slashes in a row 151 $value = preg_replace( '#/+#', '/', str_replace( '#', '', $slug ) ); 152 153 // Strip out unsafe or unusable chars 154 $value = esc_url_raw( $value ); 155 156 // esc_url_raw() adds a scheme via esc_url(), so let's remove it 157 $value = str_replace( 'http://', '', $value ); 158 159 // Trim off first and last slashes. 160 // 161 // We already prevent double slashing elsewhere, but let's prevent 162 // accidental poisoning of options values where we can. 163 $value = ltrim( $value, '/' ); 164 $value = rtrim( $value, '/' ); 165 166 // Filter the result and return 167 return apply_filters( 'bbp_sanitize_slug', $value, $slug ); 168 } 169 170 /** 141 171 * Uninstall all bbPress options and capabilities from a specific site. 142 172 * 143 173 * @since bbPress (r3765) -
includes/admin/settings.php
263 263 '_bbp_root_slug' => array( 264 264 'title' => __( 'Forum Root', 'bbpress' ), 265 265 'callback' => 'bbp_admin_setting_callback_root_slug', 266 'sanitize_callback' => ' esc_sql',266 'sanitize_callback' => 'bbp_sanitize_slug', 267 267 'args' => array() 268 268 ), 269 269 … … 292 292 '_bbp_forum_slug' => array( 293 293 'title' => __( 'Forum', 'bbpress' ), 294 294 'callback' => 'bbp_admin_setting_callback_forum_slug', 295 'sanitize_callback' => ' sanitize_title',295 'sanitize_callback' => 'bbp_sanitize_slug', 296 296 'args' => array() 297 297 ), 298 298 … … 300 300 '_bbp_topic_slug' => array( 301 301 'title' => __( 'Topic', 'bbpress' ), 302 302 'callback' => 'bbp_admin_setting_callback_topic_slug', 303 'sanitize_callback' => ' sanitize_title',303 'sanitize_callback' => 'bbp_sanitize_slug', 304 304 'args' => array() 305 305 ), 306 306 … … 308 308 '_bbp_topic_tag_slug' => array( 309 309 'title' => __( 'Topic Tag', 'bbpress' ), 310 310 'callback' => 'bbp_admin_setting_callback_topic_tag_slug', 311 'sanitize_callback' => ' sanitize_title',311 'sanitize_callback' => 'bbp_sanitize_slug', 312 312 'args' => array() 313 313 ), 314 314 … … 316 316 '_bbp_view_slug' => array( 317 317 'title' => __( 'Topic View', 'bbpress' ), 318 318 'callback' => 'bbp_admin_setting_callback_view_slug', 319 'sanitize_callback' => ' sanitize_title',319 'sanitize_callback' => 'bbp_sanitize_slug', 320 320 'args' => array() 321 321 ), 322 322 … … 324 324 '_bbp_reply_slug' => array( 325 325 'title' => __( 'Reply', 'bbpress' ), 326 326 'callback' => 'bbp_admin_setting_callback_reply_slug', 327 'sanitize_callback' => ' sanitize_title',327 'sanitize_callback' => 'bbp_sanitize_slug', 328 328 'args' => array() 329 329 ), 330 330 … … 332 332 '_bbp_search_slug' => array( 333 333 'title' => __( 'Search', 'bbpress' ), 334 334 'callback' => 'bbp_admin_setting_callback_search_slug', 335 'sanitize_callback' => ' sanitize_title',335 'sanitize_callback' => 'bbp_sanitize_slug', 336 336 'args' => array() 337 337 ) 338 338 ), … … 345 345 '_bbp_user_slug' => array( 346 346 'title' => __( 'User Base', 'bbpress' ), 347 347 'callback' => 'bbp_admin_setting_callback_user_slug', 348 'sanitize_callback' => ' sanitize_title',348 'sanitize_callback' => 'bbp_sanitize_slug', 349 349 'args' => array() 350 350 ), 351 351 … … 353 353 '_bbp_topic_archive_slug' => array( 354 354 'title' => __( 'Topics Started', 'bbpress' ), 355 355 'callback' => 'bbp_admin_setting_callback_topic_archive_slug', 356 'sanitize_callback' => ' esc_sql',356 'sanitize_callback' => 'bbp_sanitize_slug', 357 357 'args' => array() 358 358 ), 359 359 … … 361 361 '_bbp_reply_archive_slug' => array( 362 362 'title' => __( 'Replies Created', 'bbpress' ), 363 363 'callback' => 'bbp_admin_setting_callback_reply_archive_slug', 364 'sanitize_callback' => ' esc_sql',364 'sanitize_callback' => 'bbp_sanitize_slug', 365 365 'args' => array() 366 366 ), 367 367 … … 369 369 '_bbp_user_favs_slug' => array( 370 370 'title' => __( 'Favorite Topics', 'bbpress' ), 371 371 'callback' => 'bbp_admin_setting_callback_user_favs_slug', 372 'sanitize_callback' => ' esc_sql',372 'sanitize_callback' => 'bbp_sanitize_slug', 373 373 'args' => array() 374 374 ), 375 375 … … 377 377 '_bbp_user_subs_slug' => array( 378 378 'title' => __( 'Topic Subscriptions', 'bbpress' ), 379 379 'callback' => 'bbp_admin_setting_callback_user_subs_slug', 380 'sanitize_callback' => ' esc_sql',380 'sanitize_callback' => 'bbp_sanitize_slug', 381 381 'args' => array() 382 382 ) 383 383 ),