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