From 5f56d051debc4cb257b21f41dfb139ad9ad663c0 Mon Sep 17 00:00:00 2001 From: Tim Starling Date: Sat, 25 Jun 2005 13:35:30 +0000 Subject: [PATCH] general write query suppression in read only mode --- includes/Database.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/includes/Database.php b/includes/Database.php index 738fe51e0c..2b7827a7e8 100644 --- a/includes/Database.php +++ b/includes/Database.php @@ -286,6 +286,17 @@ class Database { function query( $sql, $fname = '', $tempIgnore = false ) { global $wgProfiling, $wgCommandLineMode; + if ( wfReadOnly() ) { + # This is a quick check for the most common kinds of write query used + # in MediaWiki, to provide extra safety in addition to UI-level checks. + # It is not intended to prevent every conceivable write query, or even + # to handle such queries gracefully. + if ( preg_match( '/^(update|insert|replace|delete)/i', $sql ) ) { + wfDebug( "Write query from $fname blocked\n" ); + return false; + } + } + if ( $wgProfiling ) { # generalizeSQL will probably cut down the query to reasonable # logging size most of the time. The substr is really just a sanity check. -- 2.20.1