<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>WebProNews &#187; Injection</title>
	<atom:link href="http://www.webpronews.com/tag/injection/feed" rel="self" type="application/rss+xml" />
	<link>http://www.webpronews.com</link>
	<description>Breaking News in Tech, Search, Social, &#38; Business</description>
	<lastBuildDate>Mon, 13 Feb 2012 02:19:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Google Frowns On Rogers Injection</title>
		<link>http://www.webpronews.com/google-frowns-on-rogers-injection-2007-12</link>
		<comments>http://www.webpronews.com/google-frowns-on-rogers-injection-2007-12#comments</comments>
		<pubDate>Wed, 12 Dec 2007 11:57:47 +0000</pubDate>
		<dc:creator>WebProNews Staff</dc:creator>
				<category><![CDATA[Search]]></category>
		<category><![CDATA[Canada]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Injection]]></category>
		<category><![CDATA[ISP]]></category>
		<category><![CDATA[Rogers]]></category>
		<category><![CDATA[Toronto]]></category>

		<guid isPermaLink="false">http://www.webpronews.com/?p=42613</guid>
		<description><![CDATA[Rogers Internet in Canada provides its subscribers with an advisory when they are approaching their account's bandwidth limits, by injecting that notice into a web page they are viewing.
]]></description>
			<content:encoded><![CDATA[<p>Rogers Internet in Canada provides its subscribers with an advisory when they are approaching their account&#8217;s bandwidth limits, by injecting that notice into a web page they are viewing.<br />
<span id="more-42613"></span></p>
<table width="400" cellspacing="0" cellpadding="2" border="0">
<tr>
<td align="center"><img width="400" height="200" border="0" src="http://images.ientrymail.com/webpronews/article_pics/google_frowns_rogers_injection.jpg" alt="Google Frowns On Rogers Injection" title="Google Frowns On Rogers Injection" class="irImage" /></td>
</tr>
<tr>
<td align="right" style="padding-right: 45px; padding-left: 45px; padding-bottom: 10px;" class="caption">Google Frowns On Rogers Injection</td>
</tr>
<tr>
<td align="center" style="padding-bottom: 0px;" class="caption"><img width="334" height="21" src="http://images.ientrymail.com/webpronews/salon/complete.gif" alt="" /></td>
</tr>
</table>
<p>The example of <a href=http://www.securitypronews.com/insiderreports/insider/spn-49-20071211RogersInternetInjectsItselfIntoGoogle.html>Rogers dropping a notice</a> onto Google&#8217;s homepage began making the rounds yesterday. Some people called it a threat to net neutrality, which seems a little too extreme an assessment.</p>
<p>
<a href=http://www.mattcutts.com/blog/confirmed-isp-modifies-google-home-page/>Matt Cutts</a> called the practice &#8220;pretty uncool,&#8221; but noted this was not the official Google party line.</p>
<p>
&#8220;It may be your only chance to see the word &#8220;Yahoo!&#8221; on Google</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webpronews.com/google-frowns-on-rogers-injection-2007-12/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>EFF Strikes Back Against ISP Interference</title>
		<link>http://www.webpronews.com/eff-strikes-back-against-isp-interference-2007-11</link>
		<comments>http://www.webpronews.com/eff-strikes-back-against-isp-interference-2007-11#comments</comments>
		<pubDate>Wed, 28 Nov 2007 16:06:26 +0000</pubDate>
		<dc:creator>WebProNews Staff</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Comcast]]></category>
		<category><![CDATA[EFF]]></category>
		<category><![CDATA[Injection]]></category>
		<category><![CDATA[ISP]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[P2P]]></category>
		<category><![CDATA[Traffic shaping]]></category>

		<guid isPermaLink="false">http://www.webpronews.com/?p=42204</guid>
		<description><![CDATA[<p>The Electronic Frontier Foundation stepped up its criticism of traffic shaping practices by Comcast and others with a new initiative aimed at broadband customers. <br />
</p>
]]></description>
			<content:encoded><![CDATA[<p>The Electronic Frontier Foundation stepped up its criticism of traffic shaping practices by Comcast and others with a new initiative aimed at broadband customers. 
</p>
<p><span id="more-42204"></span></p>
<p>Anyone who has recalled the line from the 1976 movie &#8216;<a href="http://www.imdb.com/title/tt0074958/">Network</a>&#8216; &#8211; &quot;I&#8217;m mad as hell, and I&#8217;m not going to take it any more!&quot; &#8211; understands the frustration of having Internet service that has been tweaked by the Internet service provider to stymie peer to peer traffic.</p>
<p>The EFF isn&#8217;t happy about this either. </p>
<p>They have added a little whipped cream to their sundae of complaints regarding the business of interfering with how people use their Internet connections.</p>
<p><a href="http://www.eff.org/testyourisp">The Test Your ISP project</a> at EFF helps people understand if their providers may be fiddling with Internet traffic. </p>
<p><a href="http://www.eff.org/wp/detecting-packet-injection">Detecting packet injection</a> takes a little technical savvy, but when conducted properly will show if the ISP has been dropping packets into one&#8217;s connections.</p>
<p>&quot;This recent interference by Comcast in their subscribers&#8217; Internet communications is a cause for grave concern,&quot; said EFF Staff Technologist Peter Eckersley. &quot;It threatens the open Internet standards and architecture that have made the network such an engine of technical and economic innovation.&quot;</p>
<p>Hindering Internet traffic shifts what had been a neutral environment of people choosing what they want to participate in online to a model where the ISP treats its network as a chokepoint. </p>
<p>Comcast or others could use this power to arbitrarily determine what their customers can and cannot do with the service they purchase.</p>
<p>That would run counter to the design of the Internet, and the freedom that has led to the development of useful applications and services available to anyone who can connect to them.</p>
<p><small></small></p>
<p><a href="http://twitter.com/dutter/">follow me on Twitter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.webpronews.com/eff-strikes-back-against-isp-interference-2007-11/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Healthline Receives $21 Million Injection</title>
		<link>http://www.webpronews.com/healthline-receives-21-million-injection-2007-07</link>
		<comments>http://www.webpronews.com/healthline-receives-21-million-injection-2007-07#comments</comments>
		<pubDate>Tue, 17 Jul 2007 22:13:53 +0000</pubDate>
		<dc:creator>Doug Caverly</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Healthline]]></category>
		<category><![CDATA[Injection]]></category>
		<category><![CDATA[iVillage]]></category>
		<category><![CDATA[NBC]]></category>
		<category><![CDATA[VentureBeat]]></category>

		<guid isPermaLink="false">http://www.webpronews.com/?p=39198</guid>
		<description><![CDATA[<p>In a manner of speaking, Healthline is looking especially robust today - it just received $21 million in financing.&#160; And if, like me, you often aren&#8217;t acquainted with the names of financial backers, you should still recognize the entity that was behind this gift: GE/NBC Universal&#8217;s Peacock Equity Fund.<br />
<br />
]]></description>
			<content:encoded><![CDATA[<p>In a manner of speaking, Healthline is looking especially robust today &#8211; it just received $21 million in financing.&nbsp; And if, like me, you often aren&rsquo;t acquainted with the names of financial backers, you should still recognize the entity that was behind this gift: GE/NBC Universal&rsquo;s Peacock Equity Fund.</p>
<p><span id="more-39198"></span> Yep, that&rsquo;s right, the same guys who give us a great Thursday night lineup (&ldquo;My Name Is Earl,&rdquo; &ldquo;The Office,&rdquo; &ldquo;Scrubs,&rdquo; and &ldquo;30 Rock,&rdquo; though I think they swapped the order), just gave Healthline, a medical search engine, a great wad of cash.&nbsp; Other contributors include Aetna Ventures, LLC, Kaiser Permanente Ventures, and U.S. News and World Report.</p>
<p>There&rsquo;s the financial side for you.&nbsp; As for the operational aspects, <a title="Healthline Gets $21 Million" href="http://venturebeat.com/2007/07/16/healthline-gets-21m-more-to-extend-health-search-engine/">VentureBeat</a>&rsquo;s Matt Marshall reports that Healthline &ldquo;is focusing solely on health search, and is making surprising headway.&nbsp; It has six million monthly unique users, and is the only search engine among the top-twenty U.S. health-related sites &#8211; with the exception of Yahoo Health.&rdquo;</p>
<p>And to connect the financial and operational facets, we&rsquo;ll go to an official press release from <a title="Healthline Home Page" href="http://www.healthline.com/">Healthline</a> itself.&nbsp; &ldquo;Highlighting this financing round is a series of key operating alliances between Healthline and its strategic investors, including an agreement in which Healthline will provide its industry-leading search, navigation and content services to NBC Universal&rsquo;s iVillage Total Health, a consumer health portal.&rdquo;</p>
<p>Sounds like everybody&rsquo;s coming out ahead.&nbsp; I am worried about &ldquo;<a title="&quot;Scrubs&quot; Home Page" href="http://www.nbc.com/Scrubs/">Scrubs</a>,&rdquo; though &#8211; seems like the show came kinda close to being cancelled.&nbsp; Perhaps Healthline could send some of the $21 million its way.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.webpronews.com/healthline-receives-21-million-injection-2007-07/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Business rules &amp; &#8220;Dependency Injection&#8221;</title>
		<link>http://www.webpronews.com/business-rules-dependency-injection-2007-03</link>
		<comments>http://www.webpronews.com/business-rules-dependency-injection-2007-03#comments</comments>
		<pubDate>Thu, 22 Mar 2007 02:13:23 +0000</pubDate>
		<dc:creator>James Taylor</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[comments]]></category>
		<category><![CDATA[Injection]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[rules]]></category>
		<category><![CDATA[Sun]]></category>

		<guid isPermaLink="false">http://www.webpronews.com/?p=36351</guid>
		<description><![CDATA[<p>Nik Malik posted <a target="_blank" href="http://blogs.msdn.com/nickmalik/archive/2007/03/06/perhaps-it-is-time-to-declare-victory-in-the-battle-of-rules-engines-vs-dependency-injection.aspx">here</a> on why he thinks a pattern known as &#34;dependency injection&#34; beats out rules engines.]]></description>
			<content:encoded><![CDATA[<p>Nik Malik posted <a target="_blank" href="http://blogs.msdn.com/nickmalik/archive/2007/03/06/perhaps-it-is-time-to-declare-victory-in-the-battle-of-rules-engines-vs-dependency-injection.aspx">here</a> on why he thinks a pattern known as &quot;dependency injection&quot; beats out rules engines. I was going to write a long post disagreeing but between Charles Young, who does a great job of <a target="_blank" href="http://geekswithblogs.net/cyoung/articles/108411.aspx">responding</a>, and Rajgo over on this <a target="_blank" href="http://feeds.feedburner.com/%7Er/qrdn/%7E3/100229265/">blog</a>, I am not sure I have much to add!</p>
<p>When it comes to rules, I believe that management and not execution is the issue for many organizations (such as <a target="_blank" href="http://www.edmblog.com/weblog/2005/10/sun_using_busin.html">Sun</a> for instance) and that&#8217;s the weakness for me in Nik&#8217;s argument. While &quot;dependency injection&quot; may or may not beat out a rule engine, most of us who are serious about rules use <a target="_blank" href="http://www.edmblog.com/weblog/2005/08/whats_the_diffe.html">business rules management systems</a> and managing code is just way harder, and less effective, that managing rules.</p>
<p>Sorry for the lack of posts recently, had a deadline.</p>
<p><a href="http://www.edmblog.com/weblog/2007/03/business_rules__1.html#comments">Comments</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.webpronews.com/business-rules-dependency-injection-2007-03/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Convert a MySQL Injection Script for Use in Microsoft SQL Server</title>
		<link>http://www.webpronews.com/convert-a-mysql-injection-script-for-use-in-microsoft-sql-server-2007-01</link>
		<comments>http://www.webpronews.com/convert-a-mysql-injection-script-for-use-in-microsoft-sql-server-2007-01#comments</comments>
		<pubDate>Tue, 23 Jan 2007 21:13:46 +0000</pubDate>
		<dc:creator>Lucas Green</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Injection]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.webpronews.com/?p=34694</guid>
		<description><![CDATA[MySQL Server is the most widely used database management system in the world, primarily because it is open source and free.
]]></description>
			<content:encoded><![CDATA[<p>MySQL Server is the most widely used database management system in the world, primarily because it is open source and free.</p>
<p>Hence, most databases you may get from outside sources will probably be in the form of a MySQL injection script. This is fine if you use MySQL for your own website databases, but if you use Microsoft SQL Server the script will require a little editing before it will work.</p>
<p>The first thing you&#8217;ll need to do is remove any comment lines from the script. MySQL comment lines begin with a pound character (&#8220;#&#8221;) and MSSQL comment lines begin with a double dash (&#8220;&#8211;&#8221;), which makes them completely incompatible and will product a syntax error if you try to import a MySQL injection as-is into MSSQL Server. So to get started, open up Query Analyzer if you haven&#8217;t already (the easiest way to run scripts in MSSQL Server), load up the injection script you are working with, and remove any comment lines (look for the pound symbol). It is easier just to remove them than it is to try and convert them to propery MSSQL syntax, and they are just comment lines anyway so it won&#8217;t affect anything.</p>
<p>The bulk of your script will most likely be a series of INSERT statements, and these aren&#8217;t very different in MSSQL as compared to MySQL. However, your script may also include at the beginning a small section that creates the database table where the data will be inserted, and this CREATE TABLE statement is likely to be VERY different in MSSQL, depending on how complicated it is (there could be primary and secondary keys, constraints, even triggers &#8212; the more of these the more the syntax changes from MySQL to MSSQL). Since this is likely to give you the most trouble, it is recommended that you create the database tables manually in Enterprise Manager rather than trying to convert the syntax of the script snippet. Looking at the code, you should be able to easily identify the fields and their types (such as int, varchar, text, etc). Once you have the database table created in Enterprise Manager, delete the snippet of code from the injection script that deals with the creation of the table.</p>
<p>Now all that remains is to convert the INSERT statements to the proper syntax for MSSQL Server. There are a few different steps to accomplish this, but none of them are very complicated. The first difference in syntax between MySQL and MSSQL is that in MySQL, all statements must end with a semicolon (&#8220;;&#8221;). In MSSQL, this is a syntax error. The easiest way to remove these semicolons is to do a search and replace, and since the INSERT statements should be passing a series of values for each record of data, each line of the MySQL script will most likely end with a paranthesis and semicolon (&#8220;);&#8221;). So, do a search and replace and replace all instances of &#8220;);&#8221; with just the parenthesis &#8220;)&#8221;.</p>
<p>Another difference that you will have to correct for is that your MySQL injection script will most likely use an acute accent / reverse apostrophe (ANSI character 180) around the table name on each line. In MSSQL Server, you can encapsulate an object&#8217;s name (such as a table&#8217;s) with either square brackets (&#8220;[" and "]&#8220;) or nothing at all. However, you probably don&#8217;t want to do a blanket search-and-replace of the reverse apostrophe character, because that character might be used in the data of each record (especially if the data contains text, such as an article body). The easiest way to correct for this difference in syntax, then, is to do another search and replace, and replace all instances of the reverse apostrophe AND the table name, for example &#8220;`articles`&#8221; with just the table name &#8220;articles&#8221;.</p>
<p>Finally, there will also be numerous occurrences of apostrophes throughout the text fields of the data, and the apostrophe character is used to encapsulate strings in the script. In MySQL, the way to escape an apostrophe so that the script knows it is part of the text and not the end of the string, is to use a backslash followed by the apostrophe (&#8220;&#8216;&#8221;). In a MSSQL Server script, the proper way to escape an apostrophe is to use a double apostrophe (&#8220;&#8221;&#8221;). So, one more search and replace is called for &#8212; this time, replace all instances of ['] with [''] (double apostrophe, NOT an actual quotation mark).</p>
<p>Once these steps are all complete, you are ready to run the script! There shouldn&#8217;t be any other syntax changes you&#8217;ll have to make, but don&#8217;t worry if there are because when you execute the injection script it will tell you if there are any errors. If everything was corrected properly and there are no errors, you should get a series of &#8220;1 row(s) affected&#8221; responses &#8212; one for each INSERT statement in the script. If you want to verify that the proper number of records are in the database table, you can execute a &#8220;select count(*) from tablename&#8221; statement to count the rows of the table &#8212; it should match the number of lines in the injection script, give or take a few for blank lines, etc.</p>
<p>That&#8217;s it! Your options are now increased tremendously, because now you can use either MySQL or MSSQL injection scripts to import acquired databases into your database system. If you use MySQL as your dbms, you can do this process in reverse to convert a MSSQL injection script into a MySQL one. Either way, you now can import data using an injection script from either of the two most popular database management systems in the world. Now, where to obtain such databases or injection scripts is another question entirely, and beyond the scope of this article. Suffice it to say that there are numerous sources on the internet where you can purchase or acquire databases &#8212; a good one is www.WebContents.org. I think you will find that not only is it much easier to acquire content databases for your users than it is to build them from scratch, but it also is an easy way to add a lot of new, fresh content for your users with a minimal amount of time and effort. Using this method, you can get databases of articles, jokes, quotes, recipes, etc, and put them right on your website or any other database-integrated application, with very little work. Good luck! </p>
<p>Add to <a href="http://del.icio.us/post"onclick="window.open('http://del.icio.us/post?v=4&#038;partner=wpn&#038;noui&#038;jump=close&#038;url='+encodeURIComponent(location.href)+'&#038;title='+encodeURIComponent(document.t  itle),'delicious','toolbar=no,width=700,height=400'); return false;"   CLASS="printMailTop"><img src="http://images.ientrymail.com/webpronews/delicious-pic.png" border=0> Del.icio.us</a> | <a href="javascript:void   window.open('http://digg.com/submit?phase=2&#038;url='+encodeURIComponent(window.   location.href)+'&#038;ei=UTF-8','popup','width=520px,height=420px,status=0,location=0,resizable=1,scrollbars=1,left=100,top=50',0)"><img   src="http://images.ientrymail.com/webpronews/digg-pic.png" border=0> Digg</a> | <a href="javascript:location.href='http://reddit.com/submit?url='+encodeURIComponent(location.href)+'&#038;title='+encodeURIComponent(document.title)"><img  src="http://images.ientrymail.com/webpronews/reddit.png" border=0>Reddit</a> | <a href="javascript:location.href='http://www.furl.net/storeIt.jsp?u='+encodeURIComponent(document.location.href)+'&#038;t='+encodeURIComponent(document.title)+ '   '"><img src="http://images.ientrymail.com/webpronews/furl-pic.png" border=0> Furl</a> </p>
<p> Bookmark WebProNews: <a href="http://www.webpronews.com"><img src="http://images.ientrymail.com/webpronews/wpn-readit.jpg" border=0></a></p>
<p>This article was written by <a href="http://www.lucasgreen.com/">Lucas Green</a>, a professional private web developer who lives off his internet income. To visit his website and learn more about how he is creating multiple streams of passive income using the internet, please visit www.lucasgreen.com ! </p>
]]></content:encoded>
			<wfw:commentRss>http://www.webpronews.com/convert-a-mysql-injection-script-for-use-in-microsoft-sql-server-2007-01/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web App Vulnerabilities Over Buffer Overflows</title>
		<link>http://www.webpronews.com/web-app-vulnerabilities-over-buffer-overflows-2006-11</link>
		<comments>http://www.webpronews.com/web-app-vulnerabilities-over-buffer-overflows-2006-11#comments</comments>
		<pubDate>Fri, 03 Nov 2006 17:39:52 +0000</pubDate>
		<dc:creator>Pete Freitag</dc:creator>
				<category><![CDATA[Social Media]]></category>
		<category><![CDATA[coldfusion]]></category>
		<category><![CDATA[comments]]></category>
		<category><![CDATA[Homepage]]></category>
		<category><![CDATA[Injection]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[MySpace]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.webpronews.com/?p=32568</guid>
		<description><![CDATA[This should be an eye opener to many. In September Mitre reported that web application vulnerabilities are claiming the top three spots on their <a href="http://cve.mitre.org/" class="bluelink">CVE</a> request list, beating out Buffer Overflows.
]]></description>
			<content:encoded><![CDATA[<p>This should be an eye opener to many. In September Mitre reported that web application vulnerabilities are claiming the top three spots on their <a href="http://cve.mitre.org/" class="bluelink">CVE</a> request list, beating out Buffer Overflows.</p>
<p>1. Cross Site Scripting (21.5%)</p>
<p>2. SQL Injection (14%)</p>
<p>3. PHP includes (9.5%)</p>
<p>4. Buffer overflows (7.9%)</p>
<p><a href="http://portal.spidynamics.com/blogs/msutton/archive/2006/09/26/How-Prevalent-Are-SQL-Injection-Vulnerabilities_3F00_.aspx" class="bluelink">Mike Sutton</a> wanted to know just how prevalent are SQL Injection Vulnerabilities? So he ran a little test, and found that out of 1000 web sites 11.3% of them were vulnerable!</p>
<p>I also heard this from Mike Andrews in his <a href="http://www.petefreitag.com/item/558.cfm" class="bluelink">How to Break Web Software</a> talk. He says that the number of buffer overflow vulnerabilities have been going down over the years as more people are aware of them, and there are lots of automated tools for finding them. But the number of web application vulnerabilities has been sky rocketing.</p>
<p>Buffer Overflows were first talked about in the 1970&#8242;s by the NSA, and they are still somewhat of a problem &#8211; do you think we will still be talking about Cross Site Scripting and SQL Injection in 30 years?</p>
<p><a href="http://www.petefreitag.com/item/593.cfm#postcomment" class="bluelink">Comments</a></p>
<p><b>Related Entries </b></p>
<p><a href="http://www.petefreitag.com/item/558.cfm" class="bluelink">How to Break Web Software</a> &#8211; April 21, 2006 </p>
<p><a href="http://www.petefreitag.com/item/499.cfm" class="bluelink">Top 20 Internet Security Vulnerabilities of 2005</a> &#8211; November 23, 2005 </p>
<p><a href="http://www.petefreitag.com/item/483.cfm" class="bluelink">MySpace Hacked with CSRF and XSS</a> &#8211; October 13, 2005 </p>
<p><a href="http://www.petefreitag.com/item/363.cfm" class="bluelink">Detecting SQL Injection with ScriptProtect</a> &#8211; May 18, 2005 </p>
<p><a href="http://www.petefreitag.com/item/362.cfm" class="bluelink">ScriptProtect in ColdFusion MX 7 not a catch all</a> &#8211; May 17, 2005 </p>
<p><a href="javascript:void   window.open('http://digg.com/submit?phase=2&#038;url='+encodeURIComponent(window.   location.href)+'&#038;ei=UTF-8','popup','width=520px,height=420px,status=0,location=0,resizable=1,scrollbars=1,left=100,top=50',0)"><img   src=http://images.ientrymail.com/webpronews/digg-pic.png border=0> Digg</a> | <a href="javascript:location.href='http://reddit.com/submit?url='+encodeURIComp   onent(location.href)+'&#038;title='+encodeURIComponent(document.title)"><img  src=http://images.ientrymail.com/webpronews/reddit.png border=0>Reddit</a> | <a   href="javascript:location.href='http://www.furl.net/storeIt.jsp?u='+encodeURIComponent(document.location.href)+'&#038;t='+encodeURIComponent(document.title)+ '   '"><img src=http://images.ientrymail.com/webpronews/furl-pic.png border=0> Furl</a></p>
<p>Bookmark WebProNews: <a href=http://www.webpronews.com><img src=http://images.ientrymail.com/webpronews/wpn-readit.jpg border=0></a> </p>
<p><b><a href="http://www.petefreitag.com/item/593.cfm" class="bluelink">*Originally published at Pete Freitag&#8217;s Homepage.</a></b></p>
<p>Pete Freitag (<a href="http://www.petefreitag.com/">http://www.petefreitag.com/</a>) is a software engineer, and<br />
web developer located in central new york. Pete specializes in the<br />
HTTP protocol, web services, xml, java, and coldfusion. In 2003 Pete<br />
published the ColdFusion MX Developers Cookbook with SAMs Publishing.</p>
<p>Pete owns a Firm called Foundeo (<a href="http://foundeo.com/">http://foundeo.com/</a>) that specializes<br />
in Web Consulting, and Products for Web Developers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webpronews.com/web-app-vulnerabilities-over-buffer-overflows-2006-11/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How Bad Guys Hack into Websites Using SQL Injection</title>
		<link>http://www.webpronews.com/how-bad-guys-hack-into-websites-using-sql-injection-2006-05</link>
		<comments>http://www.webpronews.com/how-bad-guys-hack-into-websites-using-sql-injection-2006-05#comments</comments>
		<pubDate>Mon, 22 May 2006 17:25:49 +0000</pubDate>
		<dc:creator>Matija</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[Injection]]></category>
		<category><![CDATA[query]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Injection]]></category>
		<category><![CDATA[Websites]]></category>

		<guid isPermaLink="false">http://www.webpronews.com/?p=29433</guid>
		<description><![CDATA[SQL Injection is one of the most common security vulnerabilities on the web. Here I'll try to explain in detail these kinds of vulnerabilities with examples of bugs in PHP and possible solutions.
]]></description>
			<content:encoded><![CDATA[<p>SQL Injection is one of the most common security vulnerabilities on the web. Here I&#8217;ll try to explain in detail these kinds of vulnerabilities with examples of bugs in PHP and possible solutions.</p>
<p>If you are not so confident with programming languages and web technologies you may be wondering what SQL stands for. Well, it&#8217;s an acronym for Structured Query Language (pronounced &#8220;sequel&#8221;). It&#8217;s &#8220;de facto&#8221; the standard language to access and manipulate data in databases.</p>
<p>Nowadays most websites rely on a database (usually MySQL) to store and access data.</p>
<p>Our example will be a common login form. Internet surfers see those login forms every day, you put your username and password in and then the server checks the credentials you supplied. Ok, that&#8217;s simple, but what happens exactly on the server when he checks your credentials?</p>
<p>The client (or user) sends to the server two strings, the username and the password.</p>
<p>Usually the server will have a database with a table where the user&#8217;s data are stored. This table has at least two columns, one to store the username and one for the password. When the server receives the username and password strings he will query the database to see if the supplied credentials are valid. He will use an SQL statement for that that may look like this:</p>
<p><code>SELECT * FROM users WHERE username='SUPPLIED_USER' AND password='SUPPLIED_PASS'</code></p>
<p>For those of you who are not familiar with the SQL language, in SQL the &#8216; character is used as a delimiter for string variables. Here we use it to delimit the username and password strings supplied by the user.</p>
<p>In this example we see that the username and password supplied are inserted into the query between the &#8216; and the entire query is then executed by the database engine. If the query returns any rows, then the supplied credentials are valid (that user exists in the database and has the password that was supplied).</p>
<p>Now, what happens if a user types a &#8216; character into the username or password field? Well, by putting only a &#8216; into the username field and leaving the password field blank, the query would become:</p>
<p><code>SELECT * FROM users WHERE username=''' AND password=''</code></p>
<p>This would trigger an error, since the database engine would consider the end of the string at the second &#8216; and then it would trigger a parsing error at the third &#8216; character. Let&#8217;s now see what would happen if we would send this input data:</p>
<p><code>Username: ' OR 'a'='a Password: ' OR 'a'='a</code></p>
<p>The query would become <code> SELECT * FROM users WHERE username='' OR 'a'='a' AND password='' OR 'a'='a'</code></p>
<p>Since a is always equal to a, this query will return all the rows from the table users and the server will &#8220;think&#8221; we supplied him with valid credentials and let as in &#8211; the SQL injection was successful <img src='http://www.webpronews.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Now we are going to see some more advanced techniques.. My example will be based on a PHP and MySQL platform. In my MySQL database I created the following table:</p>
<p><code>CREATE TABLE users ( username VARCHAR(128), password VARCHAR(128), email VARCHAR(128))</code></p>
<p>There&#8217;s a single row in that table with data:</p>
<p><code>username: testuser password: testing email: testuser@testing.com</code><br />
To check the credentials I made the following query in the PHP code:</p>
<p><code>$query="select username, password from users where username='".$user."' and password='".$pass."'";</code></p>
<p>The server is also configured to print out errors triggered by MySQL (this is useful for debugging, but should be avoided on a production server).</p>
<p>So, last time I showed you how SQL injection basically works. Now I&#8217;ll show you how can we make more complex queries and how to use the MySQL error messages to get more information about the database structure.</p>
<p>Lets get started! So, if we put just an &#8216; character in the username field we get an error message like You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near &#8221;&#8221; and password=&#8221;&#8217; at line 1</p>
<p>That&#8217;s because the query became</p>
<p><code>select username, password from users where username=''' and password='' </code>What happens now if we try to put into the username field a string like &#8216; or user=&#8217;abc ? The query becomes</p>
<p><code>select username, password from users where username='' or user='abc ' and password=''</code></p>
<p>And this give us the error message Unknown column &#8216;user&#8217; in &#8216;where clause&#8217;</p>
<p>That&#8217;s fine! Using these error messages we can guess the columns in the table. We can try to put in the username field &#8216; or email=&#8217; and since we get no error message, we know that the email column exists in that table. If we know the email address of a user, we can now just try with &#8216; or email=&#8217;testuser@testing.com in both the username and password fields and our query becomes</p>
<p><code>select username, password from users where username='' or email='testuser@testing.com' and password='' or email='testuser@testing.com'</code></p>
<p>which is a valid query and if that email address exists in the table we will successfully login!</p>
<p>You can also use the error messages to guess the table name. Since in SQL you can use the table.column notation, you can try to put in the username field &#8216; or user.test=&#8217; and you will see an error message like Unknown table &#8216;user&#8217; in where clause</p>
<p>Fine! Let&#8217;s try with &#8216; or users.test=&#8217; and we have Unknown column &#8216;users.test&#8217; in &#8216;where clause&#8217;</p>
<p>so logically there&#8217;s a table named users <img src='http://www.webpronews.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Basically, if the server is configured to give out the error messages, you can use them to enumerate the database structure and then you may be able to use these informations in an attack.</p>
<p>Add to <script language='javascript'> document.write("<a href='http://del.icio.us/post?url="+encodeURIComponent(document.location.href)+"&#038;title="+encodeURIComponent(document.title)+"'>Del.icio.us</a>")</script> | <a href="javascript:void window.open('http://digg.com/submit?phase=2&#038;url='+encodeURIComponent(window.location.href)+'&#038;ei=UTF-8','popup','width=520px,height=420px,status=0,location=0,resizable=1,scrollbars=1,left=100,top=50',0)">DiggThis</a>  | <a href="javascript:void window.open('http://myweb2.search.yahoo.com/myresults/bookmarklet?t='+encodeURIComponent(document.title)+'&#038;u='+encodeURIComponent(window.location.href)+'&#038;ei=UTF-8','popup','width=520px,height=420px,status=0,location=0,resizable=1,scrollbars=1,left=100,top=50',0)">Yahoo! My Web</a></p>
<p>Technorati: </p>
<p>The author is a 23-year-old coder. He specializes in computer security, C and PHP coding, networking and server administration.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webpronews.com/how-bad-guys-hack-into-websites-using-sql-injection-2006-05/feed</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>Protecting Against SQL Injection With PHP And MYSQL</title>
		<link>http://www.webpronews.com/protecting-against-sql-injection-with-php-and-mysql-2006-01</link>
		<comments>http://www.webpronews.com/protecting-against-sql-injection-with-php-and-mysql-2006-01#comments</comments>
		<pubDate>Thu, 26 Jan 2006 17:19:57 +0000</pubDate>
		<dc:creator>Mike Morton</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Injection]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.webpronews.com/?p=26306</guid>
		<description><![CDATA[Security is important for all developers, but more so when combining two of the most popular Database and Web Programming technologies.
]]></description>
			<content:encoded><![CDATA[<p>Security is important for all developers, but more so when combining two of the most popular Database and Web Programming technologies.</p>
<p>With more and more programmers creating dynamic, database driven websites, the proliferation of PHP and MYSQL is reaching critical mass proportions.  With that however, comes the added &#8220;bonus&#8221; of many different security holes being opened on hosted boxes everywhere.  With the current atmosphere of fear and mistrust when it comes to the security of the Internet right now, as programmers, we should be doing everything that we can to build safe, secure applications.</p>
<p>How can we do that?  Well, the first step is education.  Knowing the risks you are creating with your programming, and mitigating those risks with good programming practices.  The most important part of educating yourself is understanding the different vulnerabilities that you can create with your programs.  By far the most dangerous is SQL injection.</p>
<p>What is SQL injection?  Simply put, it is the ability to inject and run arbitrary SQL code without having access to the database by traditional means.  In lay terms, a user can access information or gain unauthorized access to the information contained in your database.  This can be particularity troubling if you keep information such as customer contacts, credit cards, or other personal or critical information in your database.</p>
<p>What does SQL injection look like?  Imagine the following SQL query:</p>
<p>select * from customer_info where name=&#8217;$_POST[username]&#8216; and pass=&#8217;$_POST[password]&#8216;</p>
<p>If someone wanted to try and gain access to the area you are securing with this query, they could simply enter as their password: &#8216; or &#8217;1&#8242;=&#8217;1&#8242;, resulting in the following query being executed:</p>
<p>select * from customer_info where name=&#8217;someusername&#8217; and pass=&#8221; or &#8217;1&#8242;=&#8217;1&#8242;</p>
<p>If you evaluate that, then it will select everything from that table, since the OR &#8217;1&#8242;=&#8217;1&#8242; will always be true, resulting in ALL the records being selected.</p>
<p>Protecting against this should take the form of several steps, but the first and foremost is that ANY and ALL input that is going to be used in an SQL query should first be filtered for content.  This can be done for each variable individually, but that can get tedious.  Instead, when I am processing a form of information that will end up in a database of some sort, I have a function that filters data based on what I want to do with it.</p>
<p>Because I only trust data that I have filtered exclusively for the uses I have in the script, the first thing that I do for all my scripts is filter out any slashes that may be present.  I do this specifically because of a couple of php.ini settings that may be turned on: <b>magic_quotes_gpc</b>, and <b>magic_quotes_runtime</b>.  These functions automatically escape quotes, which is generally a good thing, but can make a programmer lazy.  This is especially true if you are developing an application for widespread use on different systems that may or may not have this setting active.</p>
<p>I prefer to control my own data filtering, so the first thing I do is remove any slashes that may have automatically been added:<br />
<a name="function"></a><br />
<code style="color: green"><br />
function cleanSlashes($array=Array()) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	foreach($array as $x=>$y) { $array[$x]=stripslashes($y); }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	return $array;<br />
}</code></p>
<p>This would strip slashes from an array of information &#8211; a single variable could be stripped just as $var=stripslashes($var);</p>
<p>Once the slashes are stripped and I have the bare data, I can now decide how the data is used, and where.  If I were going to insert the data into a database, I would filter it with:</p>
<p><code style="color: green"><br />
function makeDBSafe($array=Array()) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	foreach($array as $x=>$y) { $array[$x]=mysql_real_escape_string($y); }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	return $array;<br />
}</code></p>
<p>If I wanted to use the data back in a text box (for error checking or the like):</p>
<p><code style="color: green"><br />
function makeInputBoxSafe($array=Array()) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	foreach($array as $x=>$y) { $array[$x]=htmlentities($y,ENT_QUOTES); }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	return $array;<br />
}</code></p>
<p>Or if I were saving it to a file on the server:</p>
<p><code style="color: green"><br />
function makeShellSafe($array=Array()) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	foreach($array as $x=>$y) { $array[$x]=escapeshellcmd($y); }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	return $array;<br />
}</code></p>
<p>Ideally however, I would have one function that would perform all of these, as I need them:</p>
<p><code style="color: green"><br />
function filterData($value="",$filter_type="basic",$data_type="array") {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	if($data_type=="array") {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;		foreach($value as $x=>$y) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;			switch($filter_type) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;				case 'basic': //filter out slashes from a post/get/cookie<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;					$retvar[$x]=stripslashes($y);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;				break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;				case 'dbencode': //encode db data using mysql_escape_string<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;					$retvar[$x]=mysql_real_escape_string($y);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;				break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;				case 'shellencode': //encode shell argument string data<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;					$retvar[$x]=escapeshellarg($y);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;				break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;				case 'htmlencode': //encode for form display with htmlentities<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;					$retvar[$x]=htmlentities($y,ENT_QUOTES);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;				break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;			}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;		}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	} elseif($data_type=="string") {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;		switch($filter_type) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;			case 'basic': //filter out slashes from a post/get/cookie<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;				$retvar=stripslashes($value);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;			break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;			case 'dbencode': //encode db data using mysql_escape_string<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;				$retvar=mysql_real_escape_string($value);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;			break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;			case 'shellencode': //encode shell argument string data<br />
				$retvar=escapeshellarg($value);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;			break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;			case 'htmlencode': //encode for form display with htmlentities<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;				$retvar=htmlentities($value,ENT_QUOTES);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;			break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;		}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	return $retvar;<br />
}</code></p>
<p>This function will allow me to pass through an array or a string, and select the type of filtering that I want to perform on the data based on an argument sent to the function.</p>
<p>The data filtering solution for SQL Injection is only one method among many that should be observed when creating web applications.  You should also be paying attention to access rights within your database its self, server security, and data management security.  However, if you start by filtering your data, then you have a solid foundation from which to build on.</p>
<p>Just as data filtering is only one solution for SQL Injection, SQL Injection is only one type of potential security flaw that is exploitable in PHP code, there are many others such as Cross-Site Scripting, access control flaws, cookie/session protection, and more.  As a developer, you should be familiar with each of the potential risks of these expoits, and educated on how to avoid them in your programming.</p>
<p>With more and more Web 2.0 application being built, and technologies such as AJAX being leveraged to build next generation online programs, we have a responsibility as developers to pay more attention to these sorts of potential problems, and be aware that we must stop programming as if our users are all benign and will nicely use the application as developed.  There are bad guys out there, and we should always build with them in mind.</p>
<p>Mike Morton has been developing web applications with PHP and MYSQL for more than 6 years, and is the author of Real World PHP Programming: The Basics which can be found at http://www.vtccanada.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webpronews.com/protecting-against-sql-injection-with-php-and-mysql-2006-01/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Injection Vulnerability</title>
		<link>http://www.webpronews.com/sql-injection-vulnerability-2006-01</link>
		<comments>http://www.webpronews.com/sql-injection-vulnerability-2006-01#comments</comments>
		<pubDate>Tue, 24 Jan 2006 17:18:52 +0000</pubDate>
		<dc:creator>John Stith</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Bugs]]></category>
		<category><![CDATA[Injection]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.webpronews.com/?p=26206</guid>
		<description><![CDATA[A vulnerability was discovered in the ADOdb and can be exploited by hackers doing SQL injection attacks. The vulnerability only works on the PostgreSQL users. Andy Staudacher discovered the vulnerability and Secunia reported the issue as moderately critical on Tuesday.
]]></description>
			<content:encoded><![CDATA[<p>A vulnerability was discovered in the ADOdb and can be exploited by hackers doing SQL injection attacks. The vulnerability only works on the PostgreSQL users. Andy Staudacher discovered the vulnerability and Secunia reported the issue as moderately critical on Tuesday.</p>
<p>The vulnerability itself showed up in previous version prior to the current 4.71 so the appropriate patchwork should be applied to all the previous version. The original release notes were posted at Sourceforge.net:</p>
<p><i>Recommended that all postgresql users upgrade to this version.<br />
 Fixes important postgresql security issues problems related<br />
to binary strings. Thx to Andy Staudacher. </p>
<p>Also several DSN bugs fixed, including one introduced in 4.70<br />
that corrupts underscores in the DSN, and in PHP5 DSN&#8217;s did<br />
not work. Added support for PDO DSN connections.</i></p>
<p>And the changes include:</p>
<p><i>DSN bugs found: </p>
<p>1. Fix bugs in DSN connections introduced in 4.70 when<br />
 underscores are found in the DSN. </p>
<p>2. DSN with _ did not work properly in PHP5 (fine in PHP4). Fixed. </p>
<p>3. Added support for PDO DSN connections in<br />
NewADOConnection(), and database parameter in PDO::Connect().</p>
<p>Other bugs:</p>
<p>The oci8 datetime flag not correctly implemented in ADORecordSet_array. Fixed. </p>
<p>Added BlobDelete() to postgres, as a counterpoint to UpdateBlobFile(). </p>
<p>Fixed GetInsertSQL() to support oci8po. </p>
<p>Fixed qstr() issue with postgresql with \0 in strings. </p>
<p>Fixed some datadict driver loading issues in _adodb_getdriver(). </p>
<p>Added register shutdown function session_write_close in adodb-session.inc.php for PHP 5 compat.</i>	</p>
<p>	All this is in addition to other SQL injection vulnerabilities. On Monday, an injection vulnerability was found in Zoph. This one was rated as moderately critical and a vendor patch corrected the problem. This was also an injection vulnerability. </p>
<p>	Secunia also discovered another SQL injection vulnerability in e-moBLOG. To exploit this, hackers must disable the &#8220;magic_quotes_gpc.&#8221; While the vulnerability was confirmed in the 1.3 version, other versions could be affect also. </p>
<p><i>Input passed to the &#8220;monthy&#8221; parameter in index.php and the &#8220;login&#8221; parameter in admin/index.php is not properly sanitised before being used in a SQL query. This can be exploited to manipulate SQL queries by injecting arbitrary SQL code.</i></p>
<p>All these vulnerabilities showing up fairly close together suggests a little more editing might need to be done on these products. While they aren&#8217;t all exactly the same, SQL was the key to each and all were injection vulnerabilities. In any event, make sure updates are maintained and this will help eliminate problems. </p>
<p>Email the author <script language='javascript'> document.write("Email the author <a href='mailto:news@ientry.com?subject="+encodeURIComponent(document.title)+"' >here</a>.")</script></p>
<p>Add to <script language='javascript'> document.write("<a href='http://del.icio.us/post?url="+encodeURIComponent(document.location.href)+"&#038;title="+encodeURIComponent(document.title)+"'>Del.icio.us</a>")</script > | <a href="javascript:void window.open('http://digg.com/submit?phase=2&#038;url='+encodeURIComponent(documen t.title)+'&#038;u='+encodeURIComponent(window.location.href)+'&#038;ei=UTF-8','popup', 'width=520px,height=420px,status=0,location=0,resizable=1,scrollbars=1,left= 100,top=50',0)">DiggThis</a> | <a href="javascript:void window.open('http://myweb2.search.yahoo.com/myresults/bookmarklet?t='+encode URIComponent(document.title)+'&#038;u='+encodeURIComponent(window.location.href)+ '&#038;ei=UTF-8','popup','width=520px,height=420px,status=0,location=0,resizable= 1,scrollbars=1,left=100,top=50',0)">Yahoo My Web</a></p>
<p><script language=JavaScript src="http://aj.600z.com/aj/1095/0/vj?z=1&#038;dim=1088&#038;pos=15"></script></p>
<p>John Stith is a staff writer for WebProNews covering technology and business. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.webpronews.com/sql-injection-vulnerability-2006-01/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mozilla And Firefox Vulnerable To Old Frame Injection Trick</title>
		<link>http://www.webpronews.com/mozilla-and-firefox-vulnerable-to-old-frame-injection-trick-2005-06</link>
		<comments>http://www.webpronews.com/mozilla-and-firefox-vulnerable-to-old-frame-injection-trick-2005-06#comments</comments>
		<pubDate>Mon, 06 Jun 2005 15:41:10 +0000</pubDate>
		<dc:creator>WebProNews Staff</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Injection]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Online]]></category>

		<guid isPermaLink="false">http://www.webpronews.com/?p=19220</guid>
		<description><![CDATA[Something old is new again. Reports by Danish security firm Secunia indicate both Mozilla and Firefox browsers are susceptible to a flaw first discovered in 1998.
]]></description>
			<content:encoded><![CDATA[<p>Something old is new again. Reports by Danish security firm Secunia indicate both Mozilla and Firefox browsers are susceptible to a flaw first discovered in 1998.</p>
<p>A malicious coder could use the vulnerability to spoof a legitimate web site, and gather personal information from users tricked into visiting and interacting with the spoofed site.</p>
<p>Secunia rates the flaw as moderately critical, and confirms it exists in Firefox 1.0.4 and Mozilla 1.7.8. Mozilla has recommended users close all other tabs in the window before visiting a site where personal information will be entered.</p>
<p>Mozilla has been very quick to deal with security issues as they have arisen. Users should visit the <a href="http://www.mozilla.org">Mozilla</a> web site for updates on the flaw and for a patch when it becomes available.</p>
<p>Last month, Mozilla had to quickly fix three significant security flaws discovered during Mother&#8217;s Day weekend. </p>
<p>It appears the growing popularity of Firefox has placed it into the sights of more malicious attackers. Users who have moved from Microsoft&#8217;s Internet Explorer to Firefox are starting to find security problems following them to the new browser.</p>
<p>Browser security is an industry problem, not just a problem of manufacturers, as a <a href="http://blogs.msdn.com/ie/archive/2005/05/09/415800.aspx">member of the IE team</a> at Microsoft observed online. </p>
<p>More information on Secunia&#8217;s findings, including a link where a user may test their Firefox or Mozilla browser for the vulnerability, <a href="http://secunia.com/advisories/15601/">may be found online</a>.</p>
<p>David Utter is a staff writer for WebProNews covering technology and business. Email him <A HREF="mailto:news@ientry.com">here</A>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webpronews.com/mozilla-and-firefox-vulnerable-to-old-frame-injection-trick-2005-06/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using memcached
Database Caching 1/45 queries in 0.978 seconds using memcached
Object Caching 657/770 objects using memcached

Served from: webpronews.com @ 2012-02-12 21:20:48 -->
