https://www.mediawiki.org/wiki/Special:Code/MediaWiki/106334

Revision: 106334
Author:   gregchiasson
Date:     2011-12-15 16:46:02 +0000 (Thu, 15 Dec 2011)
Log Message:
-----------
AFTv5 - Remove extraneous group by and pass variables through intval() to close 
potential sql injection vulnerability. Update PKey definitions in schema for 
rollup tables (added to alter.sql and to the main schema). Fixes issues pointed 
out on r105601

Modified Paths:
--------------
    trunk/extensions/ArticleFeedbackv5/api/ApiArticleFeedbackv5.php
    trunk/extensions/ArticleFeedbackv5/sql/ArticleFeedbackv5.sql
    trunk/extensions/ArticleFeedbackv5/sql/alter.sql

Modified: trunk/extensions/ArticleFeedbackv5/api/ApiArticleFeedbackv5.php
===================================================================
--- trunk/extensions/ArticleFeedbackv5/api/ApiArticleFeedbackv5.php     
2011-12-15 16:23:33 UTC (rev 106333)
+++ trunk/extensions/ArticleFeedbackv5/api/ApiArticleFeedbackv5.php     
2011-12-15 16:46:02 UTC (rev 106334)
@@ -340,7 +340,7 @@
                        $dbw->update(
                                'aft_article_revision_feedback_ratings_rollup',
                                array(
-                                       "afrr_total = afrr_total + $value",
+                                       "afrr_total = afrr_total + " . intval( 
$value ),
                                        "afrr_count = afrr_count + 1",
                                ),
                                array(
@@ -373,7 +373,7 @@
                                ),
                                array(
                                        'arfsr_page_id'     => $pageId,
-                                       "arfsr_revision_id > $limit",
+                                       "arfsr_revision_id > " . intval( $limit 
),
                                        'arfsr_field_id'    => $field
                                ),
                                __METHOD__,
@@ -383,11 +383,11 @@
                        $page_data = array();
                        foreach( $rows as $row ) {
                                $page_data[] = array(
-                               'afsr_page_id'   => $pageId,
-                               'afsr_field_id'  => $field,
-                               'afsr_option_id' => $row->arfsr_option_id,
-                               'afsr_total'     => $row->total,
-                               'afsr_count'     => $row->count
+                                       'afsr_page_id'   => $pageId,
+                                       'afsr_field_id'  => $field,
+                                       'afsr_option_id' => 
$row->arfsr_option_id,
+                                       'afsr_total'     => $row->total,
+                                       'afsr_count'     => $row->count
                                );
                        }
                } else {
@@ -401,11 +401,10 @@
                                ),
                                array(
                                        'afrr_page_id'     => $pageId,
-                                       "afrr_revision_id > $limit",
+                                       "afrr_revision_id > " . intval( $limit 
),
                                        'afrr_field_id'    => $field
                                ),
-                               __METHOD__,
-                               array( 'GROUP BY' => 'afrr_field_id' )
+                               __METHOD__
                        );
 
                        $page_data = array(

Modified: trunk/extensions/ArticleFeedbackv5/sql/ArticleFeedbackv5.sql
===================================================================
--- trunk/extensions/ArticleFeedbackv5/sql/ArticleFeedbackv5.sql        
2011-12-15 16:23:33 UTC (rev 106333)
+++ trunk/extensions/ArticleFeedbackv5/sql/ArticleFeedbackv5.sql        
2011-12-15 16:46:02 UTC (rev 106334)
@@ -134,7 +134,7 @@
   arfsr_field_id    integer unsigned NOT NULL,
   arfsr_total       integer unsigned NOT NULL,
   arfsr_count       integer unsigned NOT NULL,
-  PRIMARY KEY (arfsr_revision_id, arfsr_option_id)
+  PRIMARY KEY (arfsr_page_id, arfsr_field_id, arfsr_revision_id, 
arfsr_option_id)
 ) /*$wgDBTableOptions*/;
 
 -- Directly taken from AFTv4

Modified: trunk/extensions/ArticleFeedbackv5/sql/alter.sql
===================================================================
--- trunk/extensions/ArticleFeedbackv5/sql/alter.sql    2011-12-15 16:23:33 UTC 
(rev 106333)
+++ trunk/extensions/ArticleFeedbackv5/sql/alter.sql    2011-12-15 16:46:02 UTC 
(rev 106334)
@@ -39,3 +39,9 @@
 
 -- added 12/8 (later)
 CREATE INDEX /*i*/af_page_feedback_id ON /*_*/aft_article_feedback 
(af_page_id, af_id);
+
+-- aded 12/15
+ALTER TABLE aft_article_revision_feedback_select_rollup DROP PRIMARY KEY;
+ALTER TABLE aft_article_revision_feedback_select_rollup ADD PRIMARY KEY 
(arfsr_page_id, arfsr_field_id, arfsr_revision_id, arfsr_option_id);
+ALTER TABLE aft_article_revision_feedback_ratings_rollup DROP PRIMARY KEY;
+ALTER TABLE aft_article_revision_feedback_ratings_rollup ADD PRIMARY KEY 
(afrr_page_id, afrr_field_id, afrr_revision_id);


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to