<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Tales from the Evil Empire : IIS</title><link>http://weblogs.asp.net/bleroy/archive/tags/IIS/default.aspx</link><description>Tags: IIS</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>New tools to prevent SQL injection attacks</title><link>http://weblogs.asp.net/bleroy/archive/2008/06/25/new-tools-to-prevent-sql-injection-attacks.aspx</link><pubDate>Wed, 25 Jun 2008 17:00:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6319353</guid><dc:creator>Bertrand Le Roy</dc:creator><author>Bertrand Le Roy</author><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/bleroy/rsscomments.aspx?PostID=6319353</wfw:commentRss><comments>http://weblogs.asp.net/bleroy/archive/2008/06/25/new-tools-to-prevent-sql-injection-attacks.aspx#comments</comments><description>&lt;P&gt;I've &lt;A class="" href="http://weblogs.asp.net/bleroy/archive/2004/08/18/please-please-please-learn-about-injection-attacks.aspx" mce_href="http://weblogs.asp.net/bleroy/archive/2004/08/18/please-please-please-learn-about-injection-attacks.aspx"&gt;blogged in the past about injection attacks&lt;/A&gt;. Microsoft publishes additional new tools to detect and protect against injection attacks. The first tool, developed by HP, crawls web sites to automatically detect possible attacks, the second blocks dangerous requests from being executed, and the last one analyzes code to look for dangerous practice.&lt;/P&gt;
&lt;P&gt;&lt;A title=http://www.microsoft.com/technet/security/advisory/954462.mspx href="http://www.microsoft.com/technet/security/advisory/954462.mspx" mce_href="http://www.microsoft.com/technet/security/advisory/954462.mspx"&gt;http://www.microsoft.com/technet/security/advisory/954462.mspx&lt;/A&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6319353" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/bleroy/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/bleroy/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://weblogs.asp.net/bleroy/archive/tags/IIS/default.aspx">IIS</category><category domain="http://weblogs.asp.net/bleroy/archive/tags/Security/default.aspx">Security</category><category domain="http://weblogs.asp.net/bleroy/archive/tags/Injection/default.aspx">Injection</category></item><item><title>Generating thumbnails in ASP.NET (DotNetSlackers)</title><link>http://weblogs.asp.net/bleroy/archive/2008/06/20/generating-thumbnails-in-asp-net-dotnetslackers.aspx</link><pubDate>Fri, 20 Jun 2008 23:06:07 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6301207</guid><dc:creator>Bertrand Le Roy</dc:creator><author>Bertrand Le Roy</author><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/bleroy/rsscomments.aspx?PostID=6301207</wfw:commentRss><comments>http://weblogs.asp.net/bleroy/archive/2008/06/20/generating-thumbnails-in-asp-net-dotnetslackers.aspx#comments</comments><description>&lt;p&gt;I just published a &lt;a href="http://dotnetslackers.com/articles/aspnet/Generating-Image-Thumbnails-in-ASP-NET.aspx"&gt;new article&lt;/a&gt; on &lt;a href="http://dotnetslackers.com"&gt;DotNetSlackers&lt;/a&gt;. The post is about generating scalable and secure image thumbnails.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://dotnetslackers.com/articles/aspnet/Generating-Image-Thumbnails-in-ASP-NET.aspx" href="http://dotnetslackers.com/articles/aspnet/Generating-Image-Thumbnails-in-ASP-NET.aspx"&gt;http://dotnetslackers.com/articles/aspnet/Generating-Image-Thumbnails-in-ASP-NET.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6301207" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/bleroy/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/bleroy/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/bleroy/archive/tags/IIS/default.aspx">IIS</category></item><item><title>Improving PHP by running it in IIS</title><link>http://weblogs.asp.net/bleroy/archive/2008/01/25/improving-php-by-running-it-in-iis.aspx</link><pubDate>Fri, 25 Jan 2008 20:13:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5651792</guid><dc:creator>Bertrand Le Roy</dc:creator><author>Bertrand Le Roy</author><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/bleroy/rsscomments.aspx?PostID=5651792</wfw:commentRss><comments>http://weblogs.asp.net/bleroy/archive/2008/01/25/improving-php-by-running-it-in-iis.aspx#comments</comments><description>&lt;P&gt;&lt;A href="http://blogs.msdn.com/mvolo/default.aspx" mce_href="http://blogs.msdn.com/mvolo/default.aspx"&gt;Mike Volodarsky&lt;/A&gt; wrote a &lt;A class="" href="http://msdn.microsoft.com/msdnmag/issues/08/01/PHPandIIS7/default.aspx" mce_href="http://msdn.microsoft.com/msdnmag/issues/08/01/PHPandIIS7/default.aspx"&gt;fantastic article&lt;/A&gt; in the &lt;A class="" href="http://msdn.microsoft.com/msdnmag/issues/08/01/default.aspx" mce_href="http://msdn.microsoft.com/msdnmag/issues/08/01/default.aspx"&gt;January 2008 issue of MSDN magazine&lt;/A&gt; in which he explains how you can take an existing PHP application (he uses &lt;A href="http://qdig.sourceforge.net/Qdig/AboutQdig" mce_href="http://qdig.sourceforge.net/Qdig/AboutQdig"&gt;QDig&lt;/A&gt;, a popular image gallery) and improve it without touching a line of its code. This is a great demonstration of the power of &lt;A href="http://www.iis.net/default.aspx?tabid=1" mce_href="http://www.iis.net/default.aspx?tabid=1"&gt;IIS 7&lt;/A&gt;'s &lt;A href="http://www.iis.net/articles/view.aspx/IIS7/Explore-IIS7/Getting-Started/Introduction-to-IIS-7-Architecture?Page=3" mce_href="http://www.iis.net/articles/view.aspx/IIS7/Explore-IIS7/Getting-Started/Introduction-to-IIS-7-Architecture?Page=3"&gt;modular and pluggable architecture&lt;/A&gt;. &lt;A href="http://blogs.msdn.com/mvolo/default.aspx" mce_href="http://blogs.msdn.com/mvolo/default.aspx"&gt;Mike&lt;/A&gt; was able to add the following features to this PHP application using only &lt;A href="http://www.iis.net/articles/view.aspx/IIS7/Extending-IIS7/Developing-a-Module-using--NET/Developing-a-Module-using--NET" mce_href="http://www.iis.net/articles/view.aspx/IIS7/Extending-IIS7/Developing-a-Module-using--NET/Developing-a-Module-using--NET"&gt;managed code modules&lt;/A&gt; and configuration:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Access control using the &lt;A href="http://msdn2.microsoft.com/en-us/library/yh26yfzy.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/yh26yfzy.aspx"&gt;ASP.NET membership APIs&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/aa480476.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/aa480476.aspx"&gt;Forms authentication&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;Pretty URLs (http://myphpgallery/index.php/Mike/Flower.jpg instead of the default &lt;A href="http://myphpgallery/index.php?Qwd=./Mike&amp;amp;Qif=Flower.jpg" mce_href="http://myphpgallery/index.php?Qwd=./Mike&amp;amp;Qif=Flower.jpg"&gt;http://myphpgallery/index.php?Qwd=./Mike&amp;amp;Qif=Flower.jpg&lt;/A&gt;) and rewriting of all URLs that are generated by the application to be pretty.&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.iis.net/articles/view.aspx/IIS7/Managing-IIS7/Optimizing-Performance/Using-Output-Cache/IIS7-Output-Caching" mce_href="http://www.iis.net/articles/view.aspx/IIS7/Managing-IIS7/Optimizing-Performance/Using-Output-Cache/IIS7-Output-Caching"&gt;Output caching&lt;/A&gt; (which is a feature &lt;A href="http://www.zend.com/en/products/platform/" mce_href="http://www.zend.com/en/products/platform/"&gt;Zend charges for&lt;/A&gt; but that comes with IIS), leading to a whopping &amp;gt;15x improvement in throughput over the already performant &lt;A href="http://mvolo.com/blogs/serverside/archive/2007/05/29/The-latest-on-the-FastCGI-project-and-PHP-support-on-IIS.aspx" mce_href="http://mvolo.com/blogs/serverside/archive/2007/05/29/The-latest-on-the-FastCGI-project-and-PHP-support-on-IIS.aspx"&gt;FastCGI&lt;/A&gt;.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;It really is amazing that you can add such complex features to an existing web application without touching its code. It is also super-simple to do. It looks very much like aspect-oriented programming if you think about it, only it's easy to set-up and understand.&lt;/P&gt;
&lt;P&gt;The only thing I'd have liked to see and that isn't in the article is a comparison between the performance of the application on a LAMP setting with Zend's platform configured and the performance of the same application with Mike's improvements on IIS.&lt;/P&gt;
&lt;P&gt;&lt;A title=http://msdn.microsoft.com/msdnmag/issues/08/01/PHPandIIS7/default.aspx href="http://msdn.microsoft.com/msdnmag/issues/08/01/PHPandIIS7/default.aspx" mce_href="http://msdn.microsoft.com/msdnmag/issues/08/01/PHPandIIS7/default.aspx"&gt;http://msdn.microsoft.com/msdnmag/issues/08/01/PHPandIIS7/default.aspx&lt;/A&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5651792" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/bleroy/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/bleroy/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/bleroy/archive/tags/PHP/default.aspx">PHP</category><category domain="http://weblogs.asp.net/bleroy/archive/tags/IIS/default.aspx">IIS</category></item></channel></rss>