Merge "Support rate-limiting thumbnail generation"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Wed, 16 Oct 2013 17:31:50 +0000 (17:31 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Wed, 16 Oct 2013 17:31:50 +0000 (17:31 +0000)
includes/DefaultSettings.php
thumb.php

index 7763961..ab03be3 100644 (file)
@@ -4635,13 +4635,20 @@ $wgRateLimits = array(
                'ip' => null,
                'subnet' => null,
        ),
-       'mailpassword' => array(
+       'mailpassword' => array( // triggering password resets emails
                'anon' => null,
        ),
-       'emailuser' => array(
+       'emailuser' => array( // emailing other users using MediaWiki
                'user' => null,
        ),
-       'linkpurge' => array(
+       'linkpurge' => array( // purges of link tables
+               'anon' => null,
+               'user' => null,
+               'newbie' => null,
+               'ip' => null,
+               'subnet' => null,
+       ),
+       'renderfile' => array( // files rendered via thumb.php or thumb_handler.php
                'anon' => null,
                'user' => null,
                'newbie' => null,
index 4ffefb6..913adc1 100644 (file)
--- a/thumb.php
+++ b/thumb.php
@@ -304,6 +304,12 @@ function wfStreamThumb( array $params ) {
                return;
        }
 
+       $user = RequestContext::getMain()->getUser();
+       if ( $user->pingLimiter( 'renderfile' ) ) {
+               wfThumbError( 500, wfMessage( 'actionthrottledtext' ) );
+               return;
+       }
+
        // Thumbnail isn't already there, so create the new thumbnail...
        try {
                $thumb = $img->transform( $params, File::RENDER_NOW );