]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Sanitising strings to avoid sql insertion hacks.
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>
Mon, 9 Nov 2009 21:07:29 +0000 (21:07 +0000)
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>
Mon, 9 Nov 2009 21:07:29 +0000 (21:07 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@3646 36083f99-b078-4883-b0ff-0f9b5a30f544

mod/search/search_hooks.php
mod/search/start.php

index 46a26b5ef8bce04fbbc09f78220538f94ecfe466..95ef3fc85385f233b348f46b153e8c251f2ee0df 100644 (file)
@@ -68,7 +68,7 @@ function search_objects_hook($hook, $type, $value, $params) {
 function search_groups_hook($hook, $type, $value, $params) {
        global $CONFIG;
 
-       $query = $params['query'];
+       $query = sanitise_string($params['query']);
 
        $join = "JOIN {$CONFIG->dbprefix}groups_entity ge ON e.guid = ge.guid";
        $params['joins'] = array($join);
@@ -116,7 +116,7 @@ function search_groups_hook($hook, $type, $value, $params) {
 function search_users_hook($hook, $type, $value, $params) {
        global $CONFIG;
 
-       $query = $params['query'];
+       $query = sanitise_string($params['query']);
 
        $join = "JOIN {$CONFIG->dbprefix}users_entity ue ON e.guid = ue.guid";
        $params['joins'] = array($join);
@@ -216,7 +216,7 @@ function search_custom_types_tags_hook($hook, $type, $value, $params) {
 function search_comments_hook($hook, $type, $value, $params) {
        global $CONFIG;
 
-       $query = $params['query'];
+       $query = sanitise_string($params['query']);
        $params['annotation_names'] = array('generic_comment', 'group_topic_post');
 
        $params['joins'] = array(
index 02f7da494783f9cc88e5b60237da5d6ad9576c29..aa76c13b2b581bff21ee54c8d92ce8eeea891f4a 100644 (file)
@@ -334,6 +334,7 @@ function search_get_where_sql($table, $fields, $params) {
        // switch to literal mode
        if (strlen($query) < $CONFIG->search_info['min_chars']) {
                $likes = array();
+               $query = sanitise_string($query);
                foreach ($fields as $field) {
                        $likes[] = "$field LIKE '%$query%'";
                }
@@ -352,6 +353,8 @@ function search_get_where_sql($table, $fields, $params) {
                if (strlen($query) < 6) {
                        //$options .= ' WITH QUERY EXPANSION';
                }
+               $query = sanitise_string($query);
+
                // if query is shorter than the ft_min_word_len switch to literal mode.
                $fields_str = implode(',', $fields);
                //$where = "($table.guid = e.guid AND (MATCH ($fields_str) AGAINST ('$query' $options)))";