sanitize_sql_orderby

函式
sanitize_sql_orderby ( $orderby )
引數
  • (string) $orderby Order by clause to be validated.
    Required:
返回值
  • (string|false) Returns $orderby if valid, false otherwise.
定義位置
相關方法
sanitize_usersanitize_title_for_querysanitize_keysanitize_termsanitize_title
引入
2.5.1
棄用
-

sanitize_sql_orderby: 這是一個WordPress的函式,可以對SQL查詢中使用的ORDER BY子句進行淨化。它通過驗證order by列和訂單方向來防止SQL隱碼攻擊: 這個函式需要一個引數,即需要淨化的order by子句。

確保一個字串是有效的SQL’order by’子句。

接受一個或多個列,有或沒有排序順序(ASC / DESC)。例如:’column_1′, ‘column_1, column_2’, ‘column_1 ASC, column_2 DESC’ 等。

也接受’RAND()’。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
function sanitize_sql_orderby( $orderby ) {
if ( preg_match( '/^s*(([a-z0-9_]+|`[a-z0-9_]+`)(s+(ASC|DESC))?s*(,s*(?=[a-z0-9_`])|$))+$/i', $orderby ) || preg_match( '/^s*RAND(s*)s*$/i', $orderby ) ) {
return $orderby;
}
return false;
}
function sanitize_sql_orderby( $orderby ) { if ( preg_match( '/^s*(([a-z0-9_]+|`[a-z0-9_]+`)(s+(ASC|DESC))?s*(,s*(?=[a-z0-9_`])|$))+$/i', $orderby ) || preg_match( '/^s*RAND(s*)s*$/i', $orderby ) ) { return $orderby; } return false; }
function sanitize_sql_orderby( $orderby ) {
	if ( preg_match( '/^s*(([a-z0-9_]+|`[a-z0-9_]+`)(s+(ASC|DESC))?s*(,s*(?=[a-z0-9_`])|$))+$/i', $orderby ) || preg_match( '/^s*RAND(s*)s*$/i', $orderby ) ) {
		return $orderby;
	}
	return false;
}

常見問題

FAQs
檢視更多 >