<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.infosupport.com/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>Erik Oppedijk</title><link>http://blogs.infosupport.com/blogs/eriko/default.aspx</link><description>ASP.NET, Security and Robotics Developer Studio</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>Encrypt your USB devices, using Bitlocker To Go</title><link>http://blogs.infosupport.com/blogs/eriko/archive/2009/12/17/using-bitlocker-to-go-in-the-field.aspx</link><pubDate>Thu, 17 Dec 2009 10:53:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:85786</guid><dc:creator>Erik Oppedijk</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/eriko/rsscomments.aspx?PostID=85786</wfw:commentRss><comments>http://blogs.infosupport.com/blogs/eriko/archive/2009/12/17/using-bitlocker-to-go-in-the-field.aspx#comments</comments><description>&lt;p&gt;Why don&amp;#39;t we encrypt our USB disks and USB harddisks? Well, most people think it&amp;#39;s difficult, so lets dive into some details encrypting your drives with Bitlocker To Go in Windows 7.&lt;/p&gt;
&lt;p&gt;So we want to protect the data on our USB devices, so in the event that we lose a device (or when it is stolen) the information is unavailable to other people. Note however that it&amp;#39;s still possible to format the USB drive, only the information is encrypted, but our goal is achieved, nobody can access the data.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Use FAT32 for older systems&amp;nbsp;&lt;br /&gt;&lt;/strong&gt;If we want to access our Bitlocked data from older (non Windows 7 systems), then make sure the USB drive is formatted as FAT32 !!! All drives with formatted with NTFS won&amp;#39;t have the Bitlocker to go reader, so you&amp;#39;ll be unable to access your content(read only)! Only with the FAT32 filesystem a seperate partition is created with the reader application installed on it. NTFS drives will prompt the user to FORMAT the drive, so watch out with this!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Getting started&lt;/strong&gt;&lt;br /&gt;Just right click your device, and choose: Turn on Bitlocker...&lt;br /&gt;&lt;a href="http://blogs.infosupport.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriko/bitlocker.jpg"&gt;&lt;img src="http://blogs.infosupport.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/eriko/bitlocker.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Enter a password, save the recovery key to another drive and now just wait.... quite some time before the complete device is encrypted. This can take up to a few hours for larger devices. For unlocking the device with a smart card, the certificate on the smartcard needs to have the right (Extended) Key Usage mentioned. See this article for more information: &lt;a href="http://blogs.technet.com/deploymentguys/archive/2009/06/17/windows-7-and-bitlocker-cmd-line.aspx"&gt;http://blogs.technet.com/deploymentguys/archive/2009/06/17/windows-7-and-bitlocker-cmd-line.aspx&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;And for how to remove Bitlocker from a drive: &lt;a href="http://blog.unlockforus.org/2009/05/how-to-remove-bitlocker-encryption-in.html"&gt;http://blog.unlockforus.org/2009/05/how-to-remove-bitlocker-encryption-in.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Just ask yourself these questions: Where are all your USB devices at this moment, did you loose some? Who has access to your devices. Did you ever forget your USB disk in the train/subway/bus/internet cafe? Did one of your coworkers lose anything lately? Any events in the news where a bank, military or government worker lost a USB drive?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=85786" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/eriko/archive/tags/General/default.aspx">General</category><category domain="http://blogs.infosupport.com/blogs/eriko/archive/tags/Security/default.aspx">Security</category></item><item><title>CISF and Application Portfolio Management</title><link>http://blogs.infosupport.com/blogs/eriko/archive/2009/09/16/CISF-and-Application-Portfolio-Management.aspx</link><pubDate>Wed, 16 Sep 2009 14:05:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:19559</guid><dc:creator>Erik Oppedijk</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/eriko/rsscomments.aspx?PostID=19559</wfw:commentRss><comments>http://blogs.infosupport.com/blogs/eriko/archive/2009/09/16/CISF-and-Application-Portfolio-Management.aspx#comments</comments><description>&lt;p&gt;Microsoft is busy building a Security Infrastructure (or Portal) and is building&amp;nbsp;the Connected Information Security Framework (&lt;a href="http://cisf.codeplex.com/"&gt;CISF&lt;/a&gt;), a project by Mark Curphey, from the &lt;a href="http://www.OWASP.org"&gt;OWASP&lt;/a&gt; project.&lt;/p&gt;
&lt;p&gt;The goal for CISF is to combine all Security related information into a central location, with the focus on building blocks and customization. So CISF will become a Portal, with &amp;quot;Widgets&amp;quot; for presenting the various pieces of security information. Combine this with some analytics (BI), Workflow, tasks, risks assets, authorization&amp;nbsp;and notifications. This is all being build on .NET 3.5 with WF, and there are even plans to incorporate &amp;quot;&lt;a href="http://www.microsoft.com/forefront/geneva/en/us/"&gt;Geneva&lt;/a&gt;&amp;quot;.&lt;/p&gt;
&lt;p&gt;The first CTP delivers a subset of the planned features and starts with the Authorization and Application Portfolio Management (&lt;a href="http://blogs.infosupport.com/controlpanel/blogs/posteditor.aspx/Application%20Portfolio%20Management%20(APM)%20"&gt;APM&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://blogs.infosupport.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriko/APM_5F00_app.jpg"&gt;&lt;img src="http://blogs.infosupport.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/eriko/APM_5F00_app.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In here we can define our &amp;quot;Risk Impact Assessment&amp;quot;, which is a list of questions combined with a scoring system for each answer. Every application will need to complete this assessment which will result in a score. For each range of scores we can assign tasks to be executed in the various software development stages (like design in the above picture). The whole process is monitored by task status fields.&lt;/p&gt;
&lt;p&gt;The general framework used here is very nice, it&amp;#39;s very easy (and even intended)&amp;nbsp;to create/add custom questions, add users to the system, change properties, questions and score ranges.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infosupport.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriko/APM.jpg"&gt;&lt;img src="http://blogs.infosupport.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/eriko/APM.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Installation was pretty straightforward, first install the database (on a SQL 2008 instance) and then extract the website, and change the connection strings, just read the documentation included!&lt;/p&gt;
&lt;p&gt;For more information on CISF and building widgets, read the following articles:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/securitytools/archive/2009/07/28/creating-a-redistributable-cisf-portal-widget.aspx"&gt;Creating a redistributable CISF Portal Widget&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/securitytools/archive/2009/07/28/create-a-bing-widget-for-the-cisf-security-portal.aspx" id="ctl00___ctl00___ctl02___Results___postlist___EntryItems_ctl03_PostTitle"&gt;Create a Bing Widget for the CISF Security Portal&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/securitytools/archive/2009/07/28/understanding-cisf-portal-widget-framework.aspx" id="ctl00___ctl00___ctl02___Results___postlist___EntryItems_ctl04_PostTitle"&gt;Understanding CISF Portal Widget Framework&lt;/a&gt; &lt;br /&gt;&lt;a href="http://blogs.msdn.com/securitytools/archive/2009/07/28/an-introduction-to-the-connected-information-security-platform-or-cisf.aspx" id="ctl00___ctl00___ctl02___Results___postlist___EntryItems_ctl05_PostTitle"&gt;An Introduction to the Connected Information Security Platform or CISF&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=19559" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/eriko/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.infosupport.com/blogs/eriko/archive/tags/APM/default.aspx">APM</category><category domain="http://blogs.infosupport.com/blogs/eriko/archive/tags/CISF/default.aspx">CISF</category></item><item><title>ASP.NET Vulnerability testing with CAT.NET</title><link>http://blogs.infosupport.com/blogs/eriko/archive/2009/08/26/asp-net-vulnerability-testing-with-cat-net.aspx</link><pubDate>Wed, 26 Aug 2009 14:59:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:16463</guid><dc:creator>Erik Oppedijk</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/eriko/rsscomments.aspx?PostID=16463</wfw:commentRss><comments>http://blogs.infosupport.com/blogs/eriko/archive/2009/08/26/asp-net-vulnerability-testing-with-cat-net.aspx#comments</comments><description>&lt;p&gt;CAT.NET is an add-on for Visual Studio to analyze Web Applications projects (sorry, Web Site projects are not supported) for common security flaws.&lt;/p&gt;
&lt;p&gt;So lets start a fresh site and look for some potential security risks with CAT.NET. Everyone knows that when we echo the input from a TextBox into a Label we are vulnerable to attacks, but what about dropdowns?&amp;nbsp;Lets make a page with a DropDown with several values, a Label and a Button. In the Button_Click event we copy the DropDownList1.SelectedItem.Value to the Label1.Text.&lt;/p&gt;
&lt;p&gt;Now start CAT.NET (from Visual Studio, Tools), and run an analysis on this project:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infosupport.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriko/catnet.jpg"&gt;&lt;img border="0" src="http://blogs.infosupport.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/eriko/catnet.jpg" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We have 1 XSS scripting error, because even though the user can only select a value from the dropdown and submit it, an evil user can open up his favorite hacking tool (e.g. Fiddler) and modify the data that&amp;#39;s being submitted. Lucky for us, ASP.NET will stop most of these attacks for us, by filtering on HTML tags, and unicode attacks, but it is always a good practice to encode all output. Encode&amp;nbsp;using the &lt;a href="http://blogs.msdn.com/securitytools/archive/2009/07/15/anti-xss-library-3-0-rtm.aspx"&gt;Anti-XSS library&lt;/a&gt;, because this does a better job than the regular&amp;nbsp;HttpUtility.HtmlEncode().&lt;/p&gt;
&lt;p&gt;However, what if the data is used in for example a LDAP query? Take a look at this &lt;a href="http://blogs.msdn.com/securitytools/archive/2009/08/11/ldap-injection-and-mitigation.aspx"&gt;LDAP example&lt;/a&gt;. CAT.NET will catch this and mark it as an LDAP injection attack. Because in a LDAP attack, the attacker can use normal symbols like: &lt;strong&gt;&amp;quot;&amp;nbsp; ( *&amp;nbsp;) cn=&amp;quot; &lt;/strong&gt;which are allowed by the ASP.NET ValidateRequest mechanism.&lt;/p&gt;
&lt;p&gt;We can control which checks occur, CAT.NET supports the following checks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Process Command Execution&lt;/li&gt;
&lt;li&gt;File Canonicalization&lt;/li&gt;
&lt;li&gt;Exception information&lt;/li&gt;
&lt;li&gt;LDAP injection&lt;/li&gt;
&lt;li&gt;XPATH injection&lt;/li&gt;
&lt;li&gt;SQL injection&lt;/li&gt;
&lt;li&gt;Redirection to user controlled site&lt;/li&gt;
&lt;li&gt;Cross site scripting&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;CAT.NET tries to detect as much as possible, but for example will not detect bad data coming from databases. &lt;/p&gt;
&lt;p&gt;Get the V1 CTP 32bit version here: &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=0178e2ef-9da8-445e-9348-c93f24cc9f9d&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=0178e2ef-9da8-445e-9348-c93f24cc9f9d&amp;amp;displaylang=en&lt;/a&gt;&lt;br /&gt;and for the 64 bit look here: &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=e0052bba-2d50-4214-b65b-37e5ef44f146&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=e0052bba-2d50-4214-b65b-37e5ef44f146&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Stay tuned for a new release from microsoft, the Web Protection Library. This library is intended to protect EXISTING applications, and will filter incoming and outgoing request to prevent attacks!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=16463" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/eriko/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.infosupport.com/blogs/eriko/archive/tags/Security/default.aspx">Security</category></item><item><title>Cross-Site Request Forgeries (CSRF) explained</title><link>http://blogs.infosupport.com/blogs/eriko/archive/2009/07/22/cross-site-request-forgeries.aspx</link><pubDate>Wed, 22 Jul 2009 13:45:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:16403</guid><dc:creator>Erik Oppedijk</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/eriko/rsscomments.aspx?PostID=16403</wfw:commentRss><comments>http://blogs.infosupport.com/blogs/eriko/archive/2009/07/22/cross-site-request-forgeries.aspx#comments</comments><description>&lt;p&gt;The Cross-Site Request Forgery is a relatively unknown and misunderstood attack, often mixed up with the Cross-Site Scripting (XSS) attack.&lt;/p&gt;
&lt;p&gt;The biggest difference is the server where the malicious code is hosted. With a XSS attack, that code is injected in the trustedsite you are visiting (e.g. a Forum site, or any other site you trust and sign on to) and tries to steal information by sending it to another location:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infosupport.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriko/XSS.png"&gt;&lt;img src="http://blogs.infosupport.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/eriko/XSS.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;With the CSRF the scenario is reversed, a user is tricked to a specially crafted URL (either from a compromised site, or in an email message) which executes on the trusted site.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infosupport.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriko/CSRF.png"&gt;&lt;img src="http://blogs.infosupport.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/eriko/CSRF.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For instance, the trusted site has a voting mechanism, http://www.mytrustedwebsite.com/vote?123 and the compromised site has a page with an image tag with the same address, everyone going there is downloading/clicking it (or use some javascript or a hidden frame) and will enter a vote.&lt;br /&gt;Nothing really bad can happen here, right? But what if the trustedsite has a delete URL, or a &amp;quot;transfer money&amp;quot; option. The bad thing here is that the attacker can use any open session on the trusted site, and use the credentials of that user. So always sign out when you&amp;#39;re done at a site!&lt;/p&gt;
&lt;p&gt;Of course this problem seems to involve a GET request, but it can also be done with POST requests, so be aware of this.&lt;/p&gt;
&lt;p&gt;Some ways to mitigate this is to only accept POST request, check the referer property of the browser(not always available in all browsers)&amp;nbsp;and add a special unique token/cookie to every request to make sure the visitor really was a visitor at that moment at the trusted site.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=16403" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/eriko/archive/tags/Security/default.aspx">Security</category></item><item><title>The forgotten ASP.NET Security switches and settings</title><link>http://blogs.infosupport.com/blogs/eriko/archive/2009/05/04/the-forgotten-asp-net-security-switches-and-settings.aspx</link><pubDate>Mon, 04 May 2009 13:34:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:15772</guid><dc:creator>Erik Oppedijk</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/eriko/rsscomments.aspx?PostID=15772</wfw:commentRss><comments>http://blogs.infosupport.com/blogs/eriko/archive/2009/05/04/the-forgotten-asp-net-security-switches-and-settings.aspx#comments</comments><description>&lt;p&gt;&lt;strong&gt;Retail switch&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;One of the security flaws I encounter in a lot of application/web server in production is the&amp;nbsp;ASP.NET error message with all the detailed information in there:&lt;br /&gt;&lt;a href="http://blogs.infosupport.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/eriko/Error.png"&gt;&lt;img src="http://blogs.infosupport.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/eriko/Error.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Which tells a potential hacker you are running ASP.NET, the version of ASP.NET is also&amp;nbsp;published and even the path on the filesystem is in there. Also it tells the user too much information, and in 1 case&amp;nbsp;the test team was expecting this and used these screens to validate an application.&lt;/p&gt;
&lt;p&gt;We can avoid this with a single line in our &lt;strong&gt;machine.config&lt;/strong&gt; file in the system.web block:&lt;/p&gt;
&lt;p&gt;&lt;table border="0" cellpadding="0" cellspacing="0" style="background-color:#f2f2f2;border:solid 1px #e5e5e5;width:100%;"&gt;
    &lt;tr style="vertical-align:top;line-height:normal;"&gt;
        &lt;td style="width:40px;text-align:right;"&gt;
            &lt;pre style="font-family:courier new;font-size:11px;color:gray;margin:0px;padding:2px;border-right:solid 1px #e7e7e7;"&gt;1
&lt;/pre&gt;&lt;/td&gt;
        &lt;td&gt;
            &lt;pre style="overflow:scroll;margin:0px;padding:2px;padding-left:8px;"&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;deployment&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;retail&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;/&amp;gt;&lt;/span&gt; &lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;&lt;/p&gt;
&lt;p&gt;This SHOULD be the default in every production server you encounter! &lt;br /&gt;It effectively disables remote detailed error messages, forces the compiler to ignore the &amp;quot;debug&amp;quot; compilation settings, and enables caching for all WebResources.axd calls. &lt;/p&gt;
&lt;p&gt;The root cause for this problem is that a &amp;quot;development&amp;quot;&amp;nbsp;web.config file(with remote errors enables)&amp;nbsp;is copied into the production environment. The retail switch protects us against this, but be sure to check your config files for other errors as well.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ViewStateUserKey&lt;/strong&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2006/04/11/Don_1920_t-run-production-ASP.NET-Applications-with-debug_3D001D20_true_1D20_-enabled.aspx"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To protect POST request to our ASP.NET applications we can use the ViewStateUserKey (dont turn off ViewState MAC) to enable the viewstate to contain a unique value per user. This will help mitigate against a CSRF (&lt;a href="http://en.wikipedia.org/wiki/Cross-site_request_forgery"&gt;Cross-Site Request Forgery&lt;/a&gt;) attack. This won&amp;#39;t help against GET request, because there is no viewstate in there, so keep protecting these.&lt;/p&gt;
&lt;p&gt;The code is very simple:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;table border="0" cellpadding="0" cellspacing="0" style="background-color:#f2f2f2;border:solid 1px #e5e5e5;width:100%;"&gt;
    &lt;tr style="vertical-align:top;line-height:normal;"&gt;
        &lt;td style="width:40px;text-align:right;"&gt;
            &lt;pre style="font-family:courier new;font-size:11px;color:gray;margin:0px;padding:2px;border-right:solid 1px #e7e7e7;"&gt;1
2
3
4
&lt;/pre&gt;&lt;/td&gt;
        &lt;td&gt;
            &lt;pre style="overflow:scroll;margin:0px;padding:2px;padding-left:8px;"&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;&lt;span style="color:blue;"&gt;void&lt;/span&gt; Page_Init(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, &lt;span style="color:teal;"&gt;EventArgs&lt;/span&gt; e) 
&lt;/span&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;{ 
&lt;/span&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;    ViewStateUserKey = Session.SessionID;
}&lt;/pre&gt;&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=15772" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/eriko/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.infosupport.com/blogs/eriko/archive/tags/DevDays09/default.aspx">DevDays09</category></item><item><title>URL Security flaw - or not?</title><link>http://blogs.infosupport.com/blogs/eriko/archive/2009/04/02/security.aspx</link><pubDate>Thu, 02 Apr 2009 08:10:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:15550</guid><dc:creator>Erik Oppedijk</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/eriko/rsscomments.aspx?PostID=15550</wfw:commentRss><comments>http://blogs.infosupport.com/blogs/eriko/archive/2009/04/02/security.aspx#comments</comments><description>&lt;p&gt;In this post I want to focus on a common security flaw, the URL.&lt;/p&gt;
&lt;p&gt;So let&amp;#39;s start with an example: &lt;/p&gt;
&lt;p&gt;&lt;table border="0" cellpadding="0" cellspacing="0" style="background-color:#f2f2f2;border:solid 1px #e5e5e5;width:100%;"&gt;
    &lt;tr style="vertical-align:top;line-height:normal;"&gt;
        &lt;td style="width:40px;text-align:right;"&gt;
            &lt;pre style="font-family:courier new;font-size:11px;color:gray;margin:0px;padding:2px;border-right:solid 1px #e7e7e7;"&gt;1
&lt;/pre&gt;&lt;/td&gt;
        &lt;td&gt;
            &lt;pre style="overflow:scroll;margin:0px;padding:2px;padding-left:8px;"&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;http://www.infosupport.com/getProduct.aspx?ProductID=123&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;&lt;br /&gt;Nothing wrong, a customer can manually change this URL to go to another page to view another product.&lt;/p&gt;
&lt;p&gt;&lt;table border="0" cellpadding="0" cellspacing="0" style="background-color:#f2f2f2;border:solid 1px #e5e5e5;width:100%;"&gt;
    &lt;tr style="vertical-align:top;line-height:normal;"&gt;
        &lt;td style="width:40px;text-align:right;"&gt;
            &lt;pre style="font-family:courier new;font-size:11px;color:gray;margin:0px;padding:2px;border-right:solid 1px #e7e7e7;"&gt;1
&lt;/pre&gt;&lt;/td&gt;
        &lt;td&gt;
            &lt;pre style="overflow:scroll;margin:0px;padding:2px;padding-left:8px;"&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;http://www.infosupport.com/getCustomer.aspx?CustomerID=456&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;&lt;br /&gt;Potentially wrong, because a customer can look into the account of another customer.&lt;/p&gt;
&lt;p&gt;So for an anonymous sites with &lt;strong&gt;public&lt;/strong&gt; information there is no problem, but whenever we have &lt;strong&gt;private&lt;/strong&gt; information, we need to &lt;strong&gt;authorize&lt;/strong&gt; the user, otherwise we run a very big risk in information disclosure.&lt;/p&gt;
&lt;p&gt;Ways &lt;strong&gt;NOT&lt;/strong&gt; to solve this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Move the CustomerID to a Cookie&lt;/li&gt;
&lt;li&gt;Move the CustomerID to a hidden field / Viewstate&lt;/li&gt;
&lt;li&gt;Obfuscate the URL with some random numbers&lt;/li&gt;
&lt;li&gt;Use a custom encryption mechanism&lt;/li&gt;
&lt;li&gt;Use logging/tracking to keep track of unauthorized requests&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So how do we solve this problem? We need to apply &lt;strong&gt;authorization&lt;/strong&gt;, so we can make sure that the current authenticated users have the right &lt;strong&gt;role&lt;/strong&gt; to view the information. The best way to do this is to add authorization checks to your Business Layer, Data Access Layer or in the Database itself. &lt;br /&gt;With the advance of the RIA applications (Ajax, Silverlight, Flex, Air) the need for this is even greater, the UI will do some role filtering, but we &lt;strong&gt;ALWAYS&lt;/strong&gt; need to check this in our web services layer/backend systems!&amp;nbsp;Also we could apply logging, but this will only help us after an attack to determine the information being disclosed.&lt;/p&gt;
&lt;p&gt;The advantage of still using the URL with private information is that an authenticated user can still bookmark the page with the URL, the user can even forward the url to another person, who can only view the information when properly authorized. The URL isn&amp;#39;t the problem here, just an innocent victim of improper authorization.&lt;/p&gt;
&lt;p&gt;During most security reviews I&amp;#39;ve done lately I found this flaw. Most of the time the site started out as a public site, and later authentication was added, together with the private data. So be aware of this for the future!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=15550" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/eriko/archive/tags/Security/default.aspx">Security</category></item><item><title>CCR and DSS Toolkit released</title><link>http://blogs.infosupport.com/blogs/eriko/archive/2008/10/29/CCR-and-DSS-Toolkit-released.aspx</link><pubDate>Wed, 29 Oct 2008 14:45:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:14644</guid><dc:creator>Erik Oppedijk</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/eriko/rsscomments.aspx?PostID=14644</wfw:commentRss><comments>http://blogs.infosupport.com/blogs/eriko/archive/2008/10/29/CCR-and-DSS-Toolkit-released.aspx#comments</comments><description>&lt;p&gt;Microsoft released a separate toolkit for using the CCR and DSS framework inside your own applications, enabling Concurrent programming inside your regular C# (or VB.NET) application. And managing a directory of services with the DSS framework. So there is no need anymore for using Robotics Studio for these environments.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.microsoft.com/ccrdss/"&gt;http://www.microsoft.com/ccrdss/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Get the whitepaper here:&lt;/p&gt;&lt;p&gt;&lt;a href="http://download.microsoft.com/download/5/6/b/56b49917-65e8-494a-bb8c-3d49850daac1/Microsoft%20CCR%20and%20DSS%20Toolkit%202008%20Standard%20Edition%20Datasheet%20EN.pdf"&gt;http://download.microsoft.com/download/5/6/b/56b49917-65e8-494a-bb8c-3d49850daac1/Microsoft%20CCR%20and%20DSS%20Toolkit%202008%20Standard%20Edition%20Datasheet%20EN.pdf&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Also read the stories from Siemens and Tyco, Siemens uses the CCR to scan mail (not email) and OCR the results and Tyco using the CCR for a security system. Both with great numbers of messages.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=14644" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/eriko/archive/tags/General/default.aspx">General</category><category domain="http://blogs.infosupport.com/blogs/eriko/archive/tags/Robotics/default.aspx">Robotics</category></item><item><title>"hosted" BizTalk Workflow Services</title><link>http://blogs.infosupport.com/blogs/eriko/archive/2008/07/16/BizTalk-Workflow-Services.aspx</link><pubDate>Wed, 16 Jul 2008 10:40:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:14168</guid><dc:creator>Erik Oppedijk</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/eriko/rsscomments.aspx?PostID=14168</wfw:commentRss><comments>http://blogs.infosupport.com/blogs/eriko/archive/2008/07/16/BizTalk-Workflow-Services.aspx#comments</comments><description>&lt;p&gt;The BizTalk Labs have delivered a new part,&amp;nbsp;a hosted &lt;a href="http://blogs.msdn.com/clemensv/archive/2008/07/15/announcing-the-microsoft-code-name-biztalk-services-r12-release.aspx"&gt;Workflow Service&lt;/a&gt;, now it is possible to create a workflow and host it in the &amp;quot;cloud&amp;quot;. we can use the ISB (Internet Service Bus, instead of Enterprise) to send messages across the internet. Combine this with authentication and authorization and we have a powerfull orchestrator.&lt;/p&gt;&lt;p&gt;Get the &lt;a href="http://labs.biztalk.net/DownloadSDK.aspx"&gt;BizTalk Services SDK&lt;/a&gt;, it will contain a &amp;quot;watchdog&amp;quot; sample workflow, this workflow will ping a website, and will report the status to a chat client (MultiCastSample). &lt;a href="http://blogs.infosupport.com/photos/eriko/picture14169.aspx" target="_blank"&gt;&lt;/a&gt;To create this, there are some new Activities to use from the Toolbox, e.g. a CloudDelay, a CloudIfElse, etc. &lt;/p&gt;&lt;p&gt;From the &lt;a href="http://blogs.infosupport.com/controlpanel/blogs/workflow.biztalk.net"&gt;workflow.biztalk.net&lt;/a&gt;&amp;nbsp;site (after creating some InfoCards for authentication) we can create our own Workflow &amp;nbsp;&lt;a href="http://blogs.infosupport.com/photos/eriko/images/14171/original.aspx" target="_blank"&gt;&lt;img border="0" height="80" src="http://blogs.infosupport.com/photos/eriko/images/14171/thumb.aspx" width="100" /&gt;&lt;/a&gt;(by copying the XOML and rules from Visual Studio) into the site. This is our workflowtype, and in the UI &lt;a href="http://blogs.infosupport.com/photos/eriko/images/14172/original.aspx" target="_blank"&gt;&lt;img border="0" height="76" src="http://blogs.infosupport.com/photos/eriko/images/14172/thumb.aspx" width="100" /&gt;&lt;/a&gt;&amp;nbsp;from the BizTalk Labs, we can create an instance of our workflow, and we can start the instance. Now the workflow is checking the site every 30 seconds, and sending messages to the Chat client&lt;/p&gt;&lt;p&gt;Finally we can start the client.&lt;br /&gt;&lt;a href="http://blogs.infosupport.com/photos/eriko/picture14170.aspx" target="_blank"&gt;&lt;img border="0" height="340" src="http://blogs.infosupport.com/photos/eriko/images/14170/original.aspx" width="677" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;So this sample allows us to subscribe to (chat) messages coming from the &amp;quot;cloud&amp;quot; and we&amp;#39;ve started a WF process, which sends messages to our cloud. So the whole proces of Orchestrating service calls, authentication and authorization, connecting through firewalls are all done by the BizTalk Services SDK.&lt;/p&gt;&lt;p&gt;&amp;nbsp;Don&amp;#39;t forget to suspend the workflow, it will keep on running...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=14168" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/eriko/archive/tags/BizTalk/default.aspx">BizTalk</category><category domain="http://blogs.infosupport.com/blogs/eriko/archive/tags/General/default.aspx">General</category></item><item><title>ASP.NET and Concurrency</title><link>http://blogs.infosupport.com/blogs/eriko/archive/2008/06/13/ASP.NET-and-Concurrency2.aspx</link><pubDate>Fri, 13 Jun 2008 11:39:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:13984</guid><dc:creator>Erik Oppedijk</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/eriko/rsscomments.aspx?PostID=13984</wfw:commentRss><comments>http://blogs.infosupport.com/blogs/eriko/archive/2008/06/13/ASP.NET-and-Concurrency2.aspx#comments</comments><description>&lt;p&gt;Paul Roberts wrote a nice article [1] about using the CCR (Concurrency and Coordination Runtime) together with ASP.NET, to start multiple task concurrently. The CCR will handle the thread pool for us.&lt;/p&gt;&lt;p&gt;The CCR is now still a part of Robotics Studio, but there are some rumors this will be part of the .Net Framework. After implementing some helper CCR functions in our base class, we can start using the async model by spawning some tasks:&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Consolas;"&gt;&lt;span style="color:blue;"&gt;protected&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; Page_Load(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, &lt;span style="color:#2b91af;"&gt;EventArgs&lt;/span&gt; e) &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Consolas;"&gt;{&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Consolas;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;...&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Consolas;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;int&lt;/span&gt; count = 10;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Consolas;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;for&lt;/span&gt; (&lt;span style="color:blue;"&gt;int&lt;/span&gt; i = 0; i &amp;lt; count; i++)&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Consolas;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Consolas;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;SpawnIterator(&lt;span style="color:#a31515;"&gt;&amp;quot;http://wwww.microsoft.com&amp;quot;&lt;/span&gt;, resultPort, DownloadUrl);&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Consolas;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Consolas;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;.... &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Consolas;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom:0pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:Consolas;"&gt;&lt;span style="color:#2b91af;"&gt;IEnumerator&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;ITask&lt;/span&gt;&amp;gt; DownloadUrl(&lt;span style="color:blue;"&gt;string&lt;/span&gt; url, &lt;span style="color:#2b91af;"&gt;SuccessFailurePort&lt;/span&gt; resultPort)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Consolas;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Consolas;"&gt;&lt;span style="color:green;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Async processing to download from url.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Threading.&lt;span style="color:#2b91af;"&gt;Thread&lt;/span&gt;.Sleep(2000);&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Consolas;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom:0pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; resultPort.Post(&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;SuccessResult&lt;/span&gt;());&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Consolas;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; yield&lt;/span&gt; &lt;span style="color:blue;"&gt;break&lt;/span&gt;;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Consolas;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:Consolas;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;The CCR will take care of all the async responses (using Ports). So to speed this up, we can control the amount of threads in the CCR thread pool in our global.asax:&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom:0pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:Consolas;"&gt;&lt;span style="color:blue;"&gt;protected&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; Application_Start(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, &lt;span style="color:#2b91af;"&gt;EventArgs&lt;/span&gt; e)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Consolas;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Consolas;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Initialize(4);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:Consolas;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Read the complete article for all the helper classes we need to get this working.&lt;/p&gt;&lt;p&gt;[1] &lt;a href="http://blogs.msdn.com/pollrobots/archive/2008/06/09/using-ccr-with-asp-net.aspx"&gt;http://blogs.msdn.com/pollrobots/archive/2008/06/09/using-ccr-with-asp-net.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=13984" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/eriko/archive/tags/Robotics/default.aspx">Robotics</category><category domain="http://blogs.infosupport.com/blogs/eriko/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>DevDays 2008 - Robotics Geek Night</title><link>http://blogs.infosupport.com/blogs/eriko/archive/2008/05/23/DevDays-2008-_2D00_-Robotics-Geek-Night.aspx</link><pubDate>Fri, 23 May 2008 09:32:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:13891</guid><dc:creator>Erik Oppedijk</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/eriko/rsscomments.aspx?PostID=13891</wfw:commentRss><comments>http://blogs.infosupport.com/blogs/eriko/archive/2008/05/23/DevDays-2008-_2D00_-Robotics-Geek-Night.aspx#comments</comments><description>&lt;p&gt;Yesterday we (&lt;a href="http://blogs.infosupport.com/raimondb/"&gt;Raimond&lt;/a&gt;, &lt;a href="http://blogs.infosupport.com/marcelv/"&gt;Marcel&lt;/a&gt; and me) gave a presentation during the DevDays Geek Night. The room was packed with about 200 e&lt;span style="font-size:10pt;line-height:115%;font-family:'Arial','sans-serif';"&gt;nthusiastic &lt;/span&gt;geeks! We talked about Robotics in general, the new Robotics Studio 2.0 beta, the RoboChamps robotic competition and also on the design of our robot &amp;quot;Woody&amp;quot;.&amp;nbsp;Finally a real life demonstration of Woody driving around on the podium and grabbing some colored&amp;nbsp;balls.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Get the&amp;nbsp;&lt;a href="http://blogs.infosupport.com/files/folders/eriko/entry13892.aspx" title="robotics" target="_blank"&gt;Woody PPTX&lt;/a&gt;&amp;nbsp;file, and also check out these links with video&amp;#39;s we&amp;#39;ve used during our talk:&lt;/p&gt;&lt;p&gt;the AMAZED &lt;a href="http://www.robochamps.com"&gt;RoboChamps&lt;/a&gt; web site&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=UNw2Xpeihms" title="robochallenge 2007"&gt;Robochallenge 2007&lt;/a&gt;&amp;nbsp;video impression&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=pfEsGuD4zXs"&gt;NAO&lt;/a&gt; Robocup 2008 Soccer robot&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=13891" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/eriko/archive/tags/General/default.aspx">General</category><category domain="http://blogs.infosupport.com/blogs/eriko/archive/tags/Robotics/default.aspx">Robotics</category></item><item><title>BizTalk 2006 R3 announced</title><link>http://blogs.infosupport.com/blogs/eriko/archive/2008/04/23/BizTalk-2006-R3-announced.aspx</link><pubDate>Wed, 23 Apr 2008 09:01:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:13762</guid><dc:creator>Erik Oppedijk</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/eriko/rsscomments.aspx?PostID=13762</wfw:commentRss><comments>http://blogs.infosupport.com/blogs/eriko/archive/2008/04/23/BizTalk-2006-R3-announced.aspx#comments</comments><description>&lt;p&gt;Microsoft announced&lt;a href="http://blogs.msdn.com/stevemar/archive/2008/04/23/biztalk-server-platform-updates.aspx" title="BizTalk 2006 R2"&gt; a new release&lt;/a&gt; for BizTalk, and it&amp;#39;s an R3 release.&lt;/p&gt;&lt;p&gt;Major investments for this release will be Visual Studio 2008, Windows Server 2008&amp;nbsp;and SQL Server 2008 support, alongside with a new service registry based on UDDI, updated support for SWIFT, EDI, RFID. and a bunch of SOA best practices. So consider this as a minor update.&lt;/p&gt;&lt;p&gt;The proposed release date of H1 CY09 means that the new BizTalk Oslo features/version will still take a long time to reach us, so we&amp;#39;ll have to wait for integrated WF support. &lt;/p&gt;&lt;p&gt;Also a new Host Integration Server 8 is announced, together with the &amp;quot;BizTalk Adapter Pack 2&amp;quot;. Sign up for the TAP on the microsoft &lt;a href="https://connect.microsoft.com/site/sitehome.aspx?SiteID=65"&gt;connect&lt;/a&gt; site.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=13762" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/eriko/archive/tags/BizTalk/default.aspx">BizTalk</category><category domain="http://blogs.infosupport.com/blogs/eriko/archive/tags/CSF/default.aspx">CSF</category></item><item><title>BizTalk 2006 R2 Deep Dive - 19th may</title><link>http://blogs.infosupport.com/blogs/eriko/archive/2008/04/18/BizTalk-2006-R2-Deep-Dive-_2D00_-19th-may.aspx</link><pubDate>Fri, 18 Apr 2008 08:01:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:13747</guid><dc:creator>Erik Oppedijk</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/eriko/rsscomments.aspx?PostID=13747</wfw:commentRss><comments>http://blogs.infosupport.com/blogs/eriko/archive/2008/04/18/BizTalk-2006-R2-Deep-Dive-_2D00_-19th-may.aspx#comments</comments><description>&lt;p&gt;We&amp;#39;ll be delivering the Quicklearn BizTalk 2006 R2 Developer Deep Dive from may 19 till may 23 in our location in Utrecht.&lt;/p&gt;&lt;p&gt;So, are you an experienced BizTalk developer, and are you interested in all the details of BizTalk 2006 R2 then this is the course for you!&lt;/p&gt;&lt;p&gt;Topics included:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Advanced Pipeline development&lt;/li&gt;&lt;li&gt;BizTalk RFID&lt;/li&gt;&lt;li&gt;Schema Extensions&lt;/li&gt;&lt;li&gt;Detailed Business Rule Engine (BRE) &lt;/li&gt;&lt;li&gt;The new R2 EDI features&lt;/li&gt;&lt;li&gt;plus&amp;nbsp;much more&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;For the full description, have a look at our &lt;a href="http://www.infosupport.nl/Training/CursusInfo?CourseCode=QLBIZ6" title="QuickLearn Deep Dive"&gt;website&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=13747" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/eriko/archive/tags/BizTalk/default.aspx">BizTalk</category><category domain="http://blogs.infosupport.com/blogs/eriko/archive/tags/General/default.aspx">General</category></item><item><title>RoboChallenge 2008 Kickoff</title><link>http://blogs.infosupport.com/blogs/eriko/archive/2007/11/09/RoboChallenge-2008-Kickoff.aspx</link><pubDate>Fri, 09 Nov 2007 09:23:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:13074</guid><dc:creator>Erik Oppedijk</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/eriko/rsscomments.aspx?PostID=13074</wfw:commentRss><comments>http://blogs.infosupport.com/blogs/eriko/archive/2007/11/09/RoboChallenge-2008-Kickoff.aspx#comments</comments><description>&lt;p&gt;Next week, on friday the 16th of november at 15:00, we&amp;#39;ll be hosting the kickoff for the annual RoboChallenge contest at our location in Veenendaal. &lt;/p&gt;&lt;p&gt;The RoboChallenge is a nice contest open to everyone, the purpose is to build a robot, and program it to drive around and collect colored objects. Take a look at the &lt;a href="http://www.robochallenge2008.nl/dnn/" title="RoboChallenge 2008"&gt;RoboChallenge site&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;If you are interested in Robotics and this competition, drop me an &lt;a href="mailto:eriko@infosupport.com" title="email"&gt;email&lt;/a&gt;&amp;nbsp;and join us at the kickoff next week, it would be nice to see more competitors from commercial companies!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=13074" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/eriko/archive/tags/General/default.aspx">General</category><category domain="http://blogs.infosupport.com/blogs/eriko/archive/tags/Robotics/default.aspx">Robotics</category></item><item><title>Another BizTalk User Group meeting</title><link>http://blogs.infosupport.com/blogs/eriko/archive/2007/10/25/New-BizTalk-User-Group-meeting.aspx</link><pubDate>Thu, 25 Oct 2007 11:42:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:12999</guid><dc:creator>Erik Oppedijk</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/eriko/rsscomments.aspx?PostID=12999</wfw:commentRss><comments>http://blogs.infosupport.com/blogs/eriko/archive/2007/10/25/New-BizTalk-User-Group-meeting.aspx#comments</comments><description>&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;On Friday November the 9th there will be a new BTUG meeting. Main topic is BizTalk 2006 R2, with a session from Sudir Hasbe, the Microsoft Corp Product Manager for BizTalk. He will be presenting on the integration between BizTalk 2006 R2 and the RFID functionality.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0cm 0cm 0pt;"&gt;&lt;span style="font-size:10pt;font-family:'Verdana','sans-serif';"&gt;Take a look at the &lt;a href="http://www.btug.nl/" title="BizTalk User Group"&gt;BTUG site&lt;/a&gt;&amp;nbsp;for more information and the registration page.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=12999" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/eriko/archive/tags/BizTalk/default.aspx">BizTalk</category></item><item><title>Ensim 3.2 SDK Training</title><link>http://blogs.infosupport.com/blogs/eriko/archive/2007/08/28/Ensim-3.2-SDK-Training.aspx</link><pubDate>Tue, 28 Aug 2007 15:31:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:12729</guid><dc:creator>Erik Oppedijk</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/eriko/rsscomments.aspx?PostID=12729</wfw:commentRss><comments>http://blogs.infosupport.com/blogs/eriko/archive/2007/08/28/Ensim-3.2-SDK-Training.aspx#comments</comments><description>&lt;p&gt;Last week I followed an Ensim 3.2 SDK Training, together with Edward, Vincent and some of my Belgian Colleagues.&lt;/p&gt;&lt;p&gt;(for those who don&amp;#39;t know Ensim, they have a product for provisioning&amp;nbsp;Hosted Exchange, IIS, SQL and WSS, which we happen to use for our hosting services)&lt;/p&gt;&lt;p&gt;We had a nice time, learning a lot on the SDK, and now it&amp;#39;s up to my Belgian colleagues to build a Service Manager for MS CRM 3.0 as a plugin for the Ensim product. &lt;/p&gt;&lt;p&gt;Overall I was quite impressed with the SDK, a lot of extensions are possible when you write your own Service, including upgrades, hotfixes and internationalization. Also the framework to create the user interfaces is very nice, they&amp;#39;ve made some very nice controls to create a consistent UI and some advanced grids.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=12729" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/eriko/archive/tags/General/default.aspx">General</category></item></channel></rss>