<?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>dawnerd &#187; security</title>
	<atom:link href="http://dawnerd.com/tag/security/feed/" rel="self" type="application/rss+xml" />
	<link>http://dawnerd.com</link>
	<description>Just another WordPress site</description>
	<lastBuildDate>Fri, 13 Aug 2010 18:20:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Open Source PHP Data Validation Class</title>
		<link>http://dawnerd.com/post/26_open-source-php-data-validation-class/</link>
		<comments>http://dawnerd.com/post/26_open-source-php-data-validation-class/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 01:32:55 +0000</pubDate>
		<dc:creator>Troy Whiteley</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[data validation]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[validation]]></category>

		<guid isPermaLink="false">http://dawnerd.com/?p=26</guid>
		<description><![CDATA[I have created a PHP5 class that handles all POST and GET variables. It performs almost all of the validations functions you could need. In addition, it makes accessing the variables very convenient. Download here. Version 1.0 How To use: &#8230; <a href="http://dawnerd.com/post/26_open-source-php-data-validation-class/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have created a PHP5 class that handles all POST and GET variables. It performs almost all of the validations functions you could need. In addition, it makes accessing the variables very convenient.<span id="more-26"></span><br />
<a href="http://labs.dawnerd.com/validation/validation-class.zip"><br />
Download here.</a> Version 1.0</p>
<p><strong>How To use:</strong><br />
First, include the class and initiate it:</p>
<pre>
<code>
<?php
include("validation.class.php");
$validation = new Validation;
?>
</code>
</pre>
<p><em>Optionally, you can use new Validation(false) to not parse all input data through the xss filter. This is not recommended.</em></p>
<p>Available functions are:</p>
<ul>
<li><code>xss($string)</code></li>
<li><code>email($string)</code></li>
<li><code>phone($string)</code></li>
<li><code>url($string)</code></li>
<li><code>db_prep($string)</code></li>
</ul>
<p>All of the above functions return a boolean value with the exception of <code>xss()</code> and <code>db_prep()</code>. Those two return a modified version of <code>$string</code>.</p>
<p>Here is an example of form validation:</p>
<pre>
<code>
<?php
$db_user = "";
$db_pass = "";
$db_serv = "";
$db_name = "";
include("../database/database.class.php");
$db = new Database($db_user,$db_pass,$db_serv,true);
if(!$db){die($db->getErrorMessage());}

include("validation.class.php");
$validation = new Validation;

echo "SELECT * FROM users WHERE user='".$validation->db_prep($validation->database_input)."'";
echo "";

if($validation->email($validation->email)) echo "valid email";
else echo "not valid email";
echo "";

if($validation->phone($validation->phone)) echo "valid phone";
else echo "not valid phone";
echo "";

if($validation->url($validation->url)) echo "valid url";
else echo "not valid url";
echo "";
?>
<form action="test.php" method="post">

database input:
<input type="text" name="database_input" id="database_input" value="<?=$validation->database_input;?>" />

email:
<input type="text" name="email" id="email" value="<?=$validation->email;?>" />

phone:
<input type="text" name="phone" id="phone" value="<?=$validation->phone;?>" />

url:
<input type="text" name="url" id="url" value="<?=$validation->url;?>" />
<input type="submit" name="test" id="dtest" value="Test" />
</form>

</code>
</pre>
<p>A demo of the above test can be <a href="http://labs.dawnerd.com/validation/test.php">found here</a>.</p>
<p>As you can see from the example above, instead of calling <code>$_GET['username']</code>, you can now call <code>$validation->username</code> without worrying about the data being &#8216;dirty&#8217;.</p>
<p>If you need help using this class, post a comment and I will gladly help you out. Also remember that this class is licensed under the <a href="http://dawnerd.com/license/">Buy Me Dew License</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://dawnerd.com/post/26_open-source-php-data-validation-class/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An Alternate Way To Bypass Javascript&#8217;s Same-Origin Policy</title>
		<link>http://dawnerd.com/post/15_an-alternate-way-to-bypass-javascripts-same-origin-policy/</link>
		<comments>http://dawnerd.com/post/15_an-alternate-way-to-bypass-javascripts-same-origin-policy/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 03:42:40 +0000</pubDate>
		<dc:creator>Troy Whiteley</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[same orgin]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://dawnerd.com/?p=15</guid>
		<description><![CDATA[If you have worked with AJAX at all, you know that there is this thing called the Same-Origin policy which makes it nearly impossible to send AJAX requests to 3rd party domains. There are workarounds such as going through a &#8230; <a href="http://dawnerd.com/post/15_an-alternate-way-to-bypass-javascripts-same-origin-policy/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you have worked with AJAX at all, you know that there is this thing called the Same-Origin policy which makes it nearly impossible to send AJAX requests to 3rd party domains. There are workarounds such as going through a proxy. I don&#8217;t like that and think it&#8217;s messy. However, sometimes it&#8217;s the only way to go about getting the job done. This post is not about going through a proxy, instead, it is about using a little trick I learned from Yahoo.<span id="more-15"></span></p>
<p>If you have control over both domains, then this  may be the ideal solution for you. For example, lets say you have two sites and you need to share data between the sites. Connecting via MySQL could be out of the question. So what do you do now? Create a dynamic javascript include file.</p>
<pre>
<code>
<?php
//some database stuff here
echo "myVar = ['info1','info2','info3'];";
?>
</code>
</pre>
<p>See how that outputs a Javascript array? It will come in handy next.</p>
<pre>
<code>
<script src="domain2.com/dynamicscript.php" type="text/javascript"></script>
<script type="text/javascript">
for(i=1;i<myVar.length;i++)
{
    document.write("

"+myVar[i]+"

");
}
</script>
</code>
</pre>
<p>By including the dynamic.php file as if it were a javascript file, you have imported the data from the other domain without having to use ajax. You can use this to pass any amount of javascript you need. I&#8217;m sure if you&#8217;re clever you will figure out how to make this into a &#8220;mock AJAX&#8221; system.</p>
]]></content:encoded>
			<wfw:commentRss>http://dawnerd.com/post/15_an-alternate-way-to-bypass-javascripts-same-origin-policy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
