Skip to Content
ASP.NET 3.5 For Dummies®
book

ASP.NET 3.5 For Dummies®

by Ken Cox
February 2008
Intermediate to advanced
428 pages
8h 52m
English
For Dummies
Content preview from ASP.NET 3.5 For Dummies®

19.9. Defanging Markup for Safety

If you want to accept HTML markup in a text box, you must disable ASP.NET's built-in defense against JavaScript attacks. (See the previous sidebar, "ASP.NET tries to protect you"). To disable the protection you change the Page directive to look like this:

<%@ Page Language="VB"  ValidateRequest="false"%>

You can ward off much of the danger of script attacks by encoding the HTML before it gets into your database. The Server object's HTMLEncode() method converts troublesome characters into their escaped format. In geekspeak, they're now entities.

Here's a little demonstration that might convince you.

  1. Add an ASP.NET page named defang.aspx to your project.

  2. Add a TextBox control and a Button control to the page.

  3. Double-click the Button control to create a default handler for its Click event and insert the following line of code in the subroutine:

    Response.Write(TextBox1.Text)
  4. Disable the protection against scripting attacks by changing the Page directive to look like the following:

    <%@ Page Language="VB"  ValidateRequest="false"%>
  5. Browse to the page, type the following into the text box, and click the button:

    <script>location.href='http://kencox.ca';</script>

    You see that if the malicious script got into your database and displayed on a page, visitors could be redirected to a site of the attacker's choice.

  6. Change the code used in Step 3 to the following:

    Response.Write(Server.HtmlEncode(TextBox1.Text))
  7. Repeat Step 5.

    The malicious script has been defanged and ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

ASP.NET 3.5 Unleashed

ASP.NET 3.5 Unleashed

Stephen Walther

Publisher Resources

ISBN: 9780470195925Purchase book