<?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>程默的博客 &#187; web应用安全</title>
	<atom:link href="http://blog.chacuo.net/tag/web%e5%ba%94%e7%94%a8%e5%ae%89%e5%85%a8/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.chacuo.net</link>
	<description>web原理、web架构、web安全、web性能、服务器性能、服务器架构、服务器安全;你不能预知明天，但你可以利用今天。你不能样样顺利，但你可以事事尽力!</description>
	<lastBuildDate>Mon, 31 Aug 2020 15:33:40 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>web应用安全 简介</title>
		<link>http://blog.chacuo.net/1353.html</link>
		<comments>http://blog.chacuo.net/1353.html#comments</comments>
		<pubDate>Mon, 09 Feb 2015 15:33:57 +0000</pubDate>
		<dc:creator>程默</dc:creator>
				<category><![CDATA[web安全]]></category>
		<category><![CDATA[web应用安全]]></category>

		<guid isPermaLink="false">http://blog.chacuo.net/?p=1353</guid>
		<description><![CDATA[一晃有一年多没有写博客了，每次想提笔写写，由于总是感觉要写的太多了，总是对自己说：“想清楚想明白再写”，这样就 [...]]]></description>
				<content:encoded><![CDATA[<p>一晃有一年多没有写博客了，每次想提笔写写，由于总是感觉要写的太多了，总是对自己说：“想清楚想明白再写”，这样就一直拖延。 另外一个原因是，觉得也没有什么人看，就这样耽搁下来了。 人是个有惰性的物种，只要惰性战胜了自己，就会找到很多理由让自己偷懒下。好了，闲话少说了，言归正传了。</p>
<p>&nbsp;</p>
<p>做了多年的web开发，遇到过很多刚刚毕业的兄弟以及刚入行的朋友。 经常在做一些功能时候，从技术设计本身出现各种问题。 他们在程序语言方面非常熟悉，但是做出来经常出现重大安全隐患！主要是用代码实现需求时候，考虑不全面，因此存在各种设计缺陷，产生技术漏洞！一些书本只会教我们 怎么样去实现功能， 而不会说 怎么样完美、无bug实现。这也是我 想写 应用安全的原因！ 希望给所有做web开发朋友，一些借鉴，写出更完美的程序！</p>
<p>上一段简单代码吧，限制只有某个a.com 来源站点，可以访问一个页面，我们代码一般如下：</p>
<div class="cnblogs_code" style="border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; border-bottom: #cccccc 1px solid; padding-bottom: 5px; padding-top: 5px; padding-left: 5px; border-left: #cccccc 1px solid; padding-right: 5px; background-color: #f5f5f5">
<pre>&lt;?<span style="color: #000000">php
</span><span style="color: #008000">//</span><span style="color: #008000">读取reffer</span>
<span style="color: #800080">$reffer</span> = <span style="color: #0000ff">isset</span>(<span style="color: #800080">$_SERVER</span>["HTTP_REFFER"])?<span style="color: #800080">$_SERVER</span>["HTTP_REFFER"]:''<span style="color: #000000">;

</span><span style="color: #0000ff">if</span>(<span style="color: #008080">strpos</span>(<span style="color: #800080">$reffer</span>,"a.com")===<span style="color: #0000ff">false</span><span style="color: #000000">)
{
    </span><span style="color: #0000ff">exit</span>('禁止访问!'<span style="color: #000000">);
}

</span><span style="color: #008000">//</span><span style="color: #008000">//继续执行</span></pre>
</div>
<p>以上代码，大家应该在一些demo里面，还有书本上面都有看到过，并且也会这样写的。 据说，weixin分享地址时候，也通过这种方式来检查是不是它们的域名呢。 </p>
<p>问题出在那里呢？</p>
<p>一个 url 地址格式是： 协议://user：<a href="mailto:pass@host/path?query#hash">pass@host/path?query#hash</a>&nbsp; ，可以看到 如果只是简单检测uri 里面是否有a.com ，是不是太容易被绕过了？ 只要自己地址是<a href="http://b.com#a.com">http://b.com#a.com</a>&nbsp; ，是不是一样可以访问我们资源了？</p>
<p>&nbsp;</p>
<p>哈哈， 是不是回想起自己某时候也这么写过呢！<img class="wlEmoticon wlEmoticon-smilewithtongueout" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="吐舌笑脸" src="http://blog.chacuo.net/wp-content/uploads/2015/02/wlEmoticon-smilewithtongueout.png">&nbsp; ，希望这个例子能够激发您的兴趣，我们除了能实现逻辑，好的程序员，应该要做到安全稳定、实现高性能程序！ 当然，我们接下来主要讲的是怎么安全实现常见web应用功能。</p>
<p>接下来章节，我就以做一个 简单网页 ‘留言薄’来说吧！&nbsp; “啊？ 为什么是 做留言薄呢”， 其实一个留言板里面功能，也能涉及到我们方方面面了，麻雀虽小、五脏俱全啦！ 另外， 记忆最深刻的的，我第一次学习web程序时候，也是从留言薄开始的呢！</p>
<p>&nbsp;</p>
<p>待续……，先跟朋友们说晚安了！</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chacuo.net/1353.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
