[theme-reviewers] Direct access prevention in comments.php - required or recommended?

Justin Tadlock justin at justintadlock.com
Sun Sep 25 03:06:21 UTC 2011


Basically, the code is ultimately irrelevant.  There's no security issue 
though.

It's good to point it out to theme devs that they don't need it.

On 9/23/2011 9:52 PM, Dion Hulse (dd32) wrote:
> The use-case mentioned is completely different from what Mark's post 
> is about. the snippet mentioned prevents direct access to the comments 
> template, Marks post is about using $_SERVER vars in theme output.. so 
> you can ignore that posting
>
> Speaking from a technical point of view (and not one of knowing what 
> the exact theme review guidelines are):
> Having that in there is pointless, but having it in there is not a 
> problem either. It's just extra code being run, it's never going to 
> prevent a problem, nor create one (Well, unless the theme is doing 
> strange things in the comments template - like writing files or 
> something - things that that file should never do).
> So the guidelines are suggesting removal of a useless piece of code. 
> No need to require it's removal, it's something like doing this: if ( 
> false ) {run_some_code();} - it's code thats never going to be of 
> use.. Only thing removing it does it make people more aware of what 
> the PHP is actually doing..
>
> As for using $pagenow/wp_die(), it's not needed, nor would it be 
> available in that case either (direct access of the file). If the 
> comments template is included, the theme is asking/WordPress is asking 
> to output the comments... bit of a no-brainer that it wouldn't need to 
> check the current templating action.
>
>
> On 24 September 2011 11:37, Chip Bennett <chip at chipbennett.net 
> <mailto:chip at chipbennett.net>> wrote:
>
>     I can't say that I agree that it's a security risk; it's a
>     conditional, not an input/output.
>
>     However, I'm not sure it's really *needed*. What is the inherent
>     risk of loading comments.php directly?
>
>     If it *is* needed, what about using $pagenow instead (I assume
>     it's available in the front-end)? e.g.:
>
>         global $pagenow;
>         if ( 'comments.php' = $pagenow ) {}
>
>
>     Also, might it be worthwhile to use wp_die() instead of die()?
>
>     Chip
>
>
>     On Fri, Sep 23, 2011 at 8:24 PM, Tyler Cunningham
>     <seizedpropaganda at gmail.com <mailto:seizedpropaganda at gmail.com>>
>     wrote:
>
>         You are correct in requiring this. It is actually now a
>         security risk as pointed out by Mark Jaquith in a blog post.
>         You can link to this post if you like:
>
>         http://markjaquith.wordpress.com/2009/09/21/php-server-vars-not-safe-in-forms-or-links/
>
>         Regards,
>
>         Tyler Cunningham  |  Founder, COO - CyberChimps LLC
>         <http://CyberChimps.com/>
>
>         @tylerbcunning <http://twitter.com/tylerbcunning>
>         http://gplus.to/tylercunningham
>         http://linkedin.com/in/tylerbcunningham
>         tyler at cyberchimps.com <mailto:tyler at cyberchimps.com>
>
>         On Friday, September 23, 2011 at 6:23 PM, Vicky Arulsingam wrote:
>
>>         I'm seeking clarification regarding the use of:
>>
>>         if ( 'comments.php' == basename($_SERVER['SCRIPT_FILENAME']) )
>>         die ( 'Please do not load this page directly. Thanks.' );
>>
>>         I've been requiring that themes not include this. Am I
>>         correct in doing so or is the removal merely a recommendation?
>>
>>         -----
>>         Vicky Arulsingam
>>
>>         _______________________________________________
>>         theme-reviewers mailing list
>>         theme-reviewers at lists.wordpress.org
>>         <mailto:theme-reviewers at lists.wordpress.org>
>>         http://lists.wordpress.org/mailman/listinfo/theme-reviewers
>
>
>         _______________________________________________
>         theme-reviewers mailing list
>         theme-reviewers at lists.wordpress.org
>         <mailto:theme-reviewers at lists.wordpress.org>
>         http://lists.wordpress.org/mailman/listinfo/theme-reviewers
>
>
>
>     _______________________________________________
>     theme-reviewers mailing list
>     theme-reviewers at lists.wordpress.org
>     <mailto:theme-reviewers at lists.wordpress.org>
>     http://lists.wordpress.org/mailman/listinfo/theme-reviewers
>
>
>
> _______________________________________________
> theme-reviewers mailing list
> theme-reviewers at lists.wordpress.org
> http://lists.wordpress.org/mailman/listinfo/theme-reviewers
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.wordpress.org/pipermail/theme-reviewers/attachments/20110924/e374fafd/attachment.htm>


More information about the theme-reviewers mailing list