| @@ -58,8 +58,14 @@ | ||
| 58 | 58 | if ( empty( $this->_query ) ) { |
| 59 | 59 | return false; |
| 60 | 60 | } |
| 61 | 61 | |
| 62 | + // only select queries allowed. | |
| 63 | + if ( preg_match( '/^\s*(insert|delete|update|replace|create|alter|drop|truncate)\s/i', $this->_query ) ) { | |
| 64 | + $this->_error = __( 'Only SELECT queries are allowed', 'visualizer' ); | |
| 65 | + return false; | |
| 66 | + } | |
| 67 | + | |
| 62 | 68 | // impose a limit if no limit clause is provided. |
| 63 | 69 | if ( strpos( strtolower( $this->_query ), ' limit ' ) === false ) { |
| 64 | 70 | $this->_query .= ' LIMIT ' . apply_filters( 'visualizer_sql_query_limit', 1000 ); |
| 65 | 71 | } |