{"id":54,"date":"2007-09-10T15:22:13","date_gmt":"2007-09-10T10:22:13","guid":{"rendered":"http:\/\/codeinmybug.wordpress.com\/2007\/09\/10\/iframes-to-be-or-not-to-be\/"},"modified":"2008-05-07T15:12:49","modified_gmt":"2008-05-07T09:42:49","slug":"iframes-to-be-or-not-to-be","status":"publish","type":"post","link":"https:\/\/projectbee.org\/blog\/archive\/iframes-to-be-or-not-to-be\/","title":{"rendered":"IFrames &#8211; To be or not to be?"},"content":{"rendered":"<p><span style=\"color: #808000;\"><strong>Update:<\/strong> Aah. It&#8217;s not that there couldn&#8217;t have been any better news :P, but today&#8217;s News is that Ma1 has agreed to provide feature to block frames through NoScript from the next version (1.1.7). <a href=\"http:\/\/noscript.net\">NoScripts Rocks<\/a>. \ud83d\ude42<br \/>\nOh and Yes! Ma1 Rocks too &#8230;;)<\/span><\/p>\n<p>I have been pretty busy since the last few weeks (and this trend is likely to continue for the coming weeks). Thus, my posts have been more  of &#8220;news-flashes&#8221;. Apologies for that. I&#8217;ve now decided to blog about things\/technologies I am working on. (Expect some write-ups on security scanners like w3af and code auditing tools like LAPSE.) However, I couldn&#8217;t stop myself from putting forward this debate on IFrames. First, let&#8217;s see what are the *evil* things that IFrames can do for&#8230; *cough*&#8230; you<\/p>\n<p><strong>CASE-I<\/strong><br \/>\nA couple of days ago, <a href=\"http:\/\/www.beskerming.com\/commentary\/2007\/08\/31\/265\/How_the_Online_Trust_Model_is_Broken_-_The_Bank_of_India.com_attack\">Bank of India site was compromised<\/a>. It was serving malwares to the visitors. This was done by &#8220;<a href=\"http:\/\/www.microsoft.com\/windows\/ie\/community\/columns\/driveby.mspx\">drive-by downloads<\/a>&#8220;. The criminals were (invisible) IFRAMES.<\/p>\n<p><strong>CASE-II<\/strong><br \/>\nI hope most of you are aware how dangerous Javascript can be. Of course, I am referring to XSS attacks. However, the recent research, notably from <a href=\"http:\/\/www.blackhat.com\/html\/bh-usa-07\/bh-usa-07-speakers.html#grossman\">Jeremiah Grossman, RSnake <\/a>and <a href=\"http:\/\/www.thespanner.co.uk\/2007\/08\/24\/css-lan-scanner\/\">Gareth Hayes<\/a>, showed another shockingly dark side of XSS with CSS (yes, Cascading Style Sheets \ud83d\ude42 ). The criminals here are IFrames, visited attribute, etc.<\/p>\n<p><strong>CASE-III<\/strong><br \/>\nGareth also gave a proof of concept on his blog to <a href=\"http:\/\/www.businessinfo.co.uk\/labs\/css_attacks\/holder.php\">perform CSRF using CSS<\/a>, even when Javascript is disabled. He (very wisely) used CSS to change the LOOK and FEEL of a Submit button to a link. Now, when a *smart* user is surfing the web with javascript disabled, he&#8217;d not worry about clicking a link, and may end up clicking on the *link* to submit the form.<\/p>\n<p><strong>CASE-IV<\/strong><br \/>\nYou decide&#8230; :).<br \/>\nI have anyways left <a href=\"http:\/\/www.businessinfo.co.uk\/labs\/css_attacks\/css_attack_demos.php\">some other known issues<\/a>, I think.<\/p>\n<p>Gareth has been preaching the evil nature of IFrames for quite some time now. Yesterday, he made a new entry titled &#8220;<a href=\"http:\/\/www.thespanner.co.uk\/2007\/09\/09\/iframes-are-evil\">IFRAMES ARE EVIL<\/a>&#8221; on his blog. He suggested using some attributes\/tags to disable\/enable iframes etc. Iframes have been on my mind for quite some time. I believe that Content Restriction, once introduced, can solve a number of issues. Till then, I believe, Maone&#8217;s NoScript can come to the rescue by proving optional feature to disable iframes. I know, this is definitely not a attractive suggestion, but who knew we&#8217;d have to browse with Javascript disabled!<\/p>\n<p>Moreover, I thought it&#8217;d be a good opportunity to see what other researchers have to say about it. So, I <a href=\"http:\/\/sla.ckers.org\/forum\/read.php?13,15701\">posted it to the Slackers forum<\/a>. I am watching keenly. \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Update: Aah. It&#8217;s not that there couldn&#8217;t have been any better news :P, but today&#8217;s News is that Ma1 has agreed to provide feature to block frames through NoScript from the next version (1.1.7). NoScripts Rocks. \ud83d\ude42 Oh and Yes! Ma1 Rocks too &#8230;;) I have been pretty busy since the last few weeks (and &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/projectbee.org\/blog\/archive\/iframes-to-be-or-not-to-be\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;IFrames &#8211; To be or not to be?&#8221;<\/span><\/a><\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[9,12,24,25,33,38,168,167,57],"tags":[27,41],"class_list":["post-54","post","type-post","status-publish","format-standard","hentry","category-bug","category-csrf","category-hack","category-hackers","category-loophole","category-news","category-security","category-webappsec","category-xss","tag-iframe","tag-noscript"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pf2XR-S","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/projectbee.org\/blog\/wp-json\/wp\/v2\/posts\/54","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/projectbee.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/projectbee.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/projectbee.org\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/projectbee.org\/blog\/wp-json\/wp\/v2\/comments?post=54"}],"version-history":[{"count":0,"href":"https:\/\/projectbee.org\/blog\/wp-json\/wp\/v2\/posts\/54\/revisions"}],"wp:attachment":[{"href":"https:\/\/projectbee.org\/blog\/wp-json\/wp\/v2\/media?parent=54"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/projectbee.org\/blog\/wp-json\/wp\/v2\/categories?post=54"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/projectbee.org\/blog\/wp-json\/wp\/v2\/tags?post=54"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}