<?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/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>htpasswd</title>
	<atom:link href="http://htpasswd.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://htpasswd.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Mon, 27 Jul 2009 12:23:23 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='htpasswd.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/f840a462efffdeca9fed80aaebd81611?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>htpasswd</title>
		<link>http://htpasswd.wordpress.com</link>
	</image>
			<item>
		<title>Managing Users To use user authentication, you&#8217;ll need to edit and manage user files and group files</title>
		<link>http://htpasswd.wordpress.com/2009/07/27/managing-users-to-use-user-authentication-youll-need-to-edit-and-manage-user-files-and-group-files/</link>
		<comments>http://htpasswd.wordpress.com/2009/07/27/managing-users-to-use-user-authentication-youll-need-to-edit-and-manage-user-files-and-group-files/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 12:23:23 +0000</pubDate>
		<dc:creator>Fastserve</dc:creator>
				<category><![CDATA[htaccess]]></category>
		<category><![CDATA[htpasswd]]></category>

		<guid isPermaLink="false">http://htpasswd.wordpress.com/?p=40</guid>
		<description><![CDATA[
AuthName Carlos Gold Info

order deny,allow
deny from all
allow from void.ncsa.uiuc.edu
require user cvarela




AuthName Carlos Gold Info

order mutual-failure
deny from all
allow from void.ncsa.uiuc.edu
require user cvarela

<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=htpasswd.wordpress.com&blog=3628479&post=40&subd=htpasswd&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><h1></h1>
<h1>Managing Users To use user authentication, you&#8217;ll need to edit and manage user files and group files</h1>
<p>.</p>
<hr />
<h2><a name="htpasswd">Using htpasswd to manage user files</a></h2>
<p>To deal with user files, we provide a program in the support directory of the distribution called <code>htpasswd</code>. Usage:</p>
<p><code>htpasswd [-c] file user</code></p>
<p>The -c, if present, tells htpasswd to create a new passwd file of the specified name instead of editing an old one. <code>file</code> is the pathname of the user file you wish to edit. The <code>user</code> parameter is the name of the user you wish to add or edit.</p>
<p>If htpasswd finds the user you specified, it will ask you to change the user&#8217;s password. Type the new password (it will ask twice).  HTTPd  will then update the file.</p>
<p>If htpasswd doesn&#8217;t find the specified user, it will ask you to give the user an initial password.</p>
<hr />
<h2><a name="group">Group files</a></h2>
<p>The format of the group file is as follows:</p>
<p><code>groupname: member1 member2 ...</code></p>
<p>Or, each line contains the name of a group, and a list of members separated by spaces.</p>
<hr /><a href="http://hoohoo.ncsa.illinois.edu/docs/setup/admin/Overview.html"></a></p>
<hr />
<address></address>
<address>
<pre>&lt;Directory /u/Web&gt;

Options All

&lt;Limit GET&gt;
order allow,deny
allow from all
&lt;/Limit&gt;

&lt;/Directory&gt;

&lt;Directory /u/Web/docs/info&gt;
AuthType Basic
AuthUserFile /usr/local/etc/httpd/conf/.htpasswd
AuthGroupFile /usr/local/etc/httpd/conf/.htgroup
&lt;/Directory&gt;

&lt;Directory /u/Web/docs/info/ncsaonly&gt;
&lt;Limit GET&gt;
order deny,allow
deny from all
allow from .ncsa.uiuc.edu
&lt;/Limit&gt;
&lt;/Directory&gt;

&lt;Directory /u/Web/docs/info/nonncsa&gt;
&lt;Limit GET&gt;
order allow,deny
allow from all
deny from .ncsa.uiuc.edu
&lt;/Limit&gt;
&lt;/Directory&gt;

&lt;Directory /u/Web/docs/info/carlosonly&gt;
AuthName Carlos Gold Info
&lt;Limit GET&gt;
require user cvarela
&lt;/Limit&gt;
&lt;/Directory&gt;

&lt;Directory /u/Web/docs/info/xmosdonly&gt;
AuthName The X Club
&lt;Limit GET&gt;
require group mosaic-x-dev
&lt;/Limit&gt;
&lt;/Directory&gt;

&lt;Directory /u/Web/docs/info/carlos-and-void&gt;
AuthName Carlos Gold Info
&lt;Limit GET&gt;
order deny,allow
deny from all
allow from void.ncsa.uiuc.edu
require user cvarela
&lt;/Limit&gt;
&lt;/Directory&gt;

&lt;Directory /u/Web/docs/info/carlos-or-void&gt;
AuthName Carlos Gold Info
&lt;Limit GET&gt;
order mutual-failure
deny from all
allow from void.ncsa.uiuc.edu
require user cvarela
&lt;/Limit&gt;
&lt;/Directory&gt;</pre>
</address>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/htpasswd.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/htpasswd.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/htpasswd.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/htpasswd.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/htpasswd.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/htpasswd.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/htpasswd.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/htpasswd.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/htpasswd.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/htpasswd.wordpress.com/40/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=htpasswd.wordpress.com&blog=3628479&post=40&subd=htpasswd&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://htpasswd.wordpress.com/2009/07/27/managing-users-to-use-user-authentication-youll-need-to-edit-and-manage-user-files-and-group-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b19170af73f1c1a6ab1f4be91530bbb3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">AskApache</media:title>
		</media:content>
	</item>
		<item>
		<title>International Computer Science Institue Networking Articles</title>
		<link>http://htpasswd.wordpress.com/2009/03/08/international-computer-science-institue-networking-articles/</link>
		<comments>http://htpasswd.wordpress.com/2009/03/08/international-computer-science-institue-networking-articles/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 20:49:35 +0000</pubDate>
		<dc:creator>Fastserve</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://htpasswd.wordpress.com/?p=37</guid>
		<description><![CDATA[



Publications
Networking









__/__/2009


 Efﬁcient MAC in Cognitive Radio Networks: A Game-Theoretic Approach
M. Felegyhazi, M. Cagalj, and J.-P. Hubaux
Transactions on Wireless Communications (TWC), to appear



__/__/2009


 Barter Trade Improves Message Delivery in Opportunistic Networks
L. Buttyan, L. Dora, M. Felegyhazi, and I. Vajda
Elsevier Ad Hoc Networks Journal, to appear



04/__/2009


 Efficient Application Placement in a Dynamic Hosting Platform
Z. Al-Qudah, H. Alzoubi, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=htpasswd.wordpress.com&blog=3628479&post=37&subd=htpasswd&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><table border="0" cellspacing="0" cellpadding="0" width="707">
<tbody>
<tr>
<td colspan="3">
<h1>Publications</h1>
<h2>Networking</h2>
</td>
</tr>
<tr>
<td></td>
<td width="379">
<table border="0" cellspacing="0" cellpadding="0" width="379">
<tbody>
<tr>
<td width="79" valign="top">
<h5>__/__/2009</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002420" target="_blank"> Efﬁcient MAC in Cognitive Radio Networks: A Game-Theoretic Approach</a></h5>
<p>M. Felegyhazi, M. Cagalj, and J.-P. Hubaux</p>
<p>Transactions on Wireless Communications (TWC), to appear</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>__/__/2009</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002421" target="_blank"> Barter Trade Improves Message Delivery in Opportunistic Networks</a></h5>
<p>L. Buttyan, L. Dora, M. Felegyhazi, and I. Vajda</p>
<p>Elsevier Ad Hoc Networks Journal, to appear</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>04/__/2009</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002415" target="_blank"> Efficient Application Placement in a Dynamic Hosting Platform</a></h5>
<p>Z. Al-Qudah, H. Alzoubi, M. Allman, M. Rabinovich, and V. Liberatore</p>
<p>Proceedings of International World Wide Web Conference, Madrid, Spain, to appear</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>04/__/2009</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002481" target="_blank"> Comments on Selecting Ephemeral Ports</a></h5>
<p>M. Allman</p>
<p>ACM Computer Communication Review, under submission</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>03/__/2009</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002404" target="_blank"> Open Source vs. Closed Source Software: Towards Measuring Security</a></h5>
<p>G. Schryen and R. Kadura</p>
<p>Proceedings of the Annual ACM Symposium on Applied Computing, Honolulu, Hawaii, to appear</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>03/__/2009</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002457" target="_blank"> Automating Analysis of Large-Scale Botnet Probing Events</a></h5>
<p>Z. Li, A. Goyal, Y. Chen, and V. Paxson</p>
<p>Proceedings of ACM Symposium on Information, Computer, and Communication Security (ASIACCS 2009), Sydney, Australia, to appear</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>02/__/2009</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002433" target="_blank"> Tiered Fault Tolerance for Long-Term Integrity</a></h5>
<p>B. Chun, P. Maniatis, S. Shenker, and J. Kubiatowicz</p>
<p>Proceedings of USENIX Conference on File and Storage Technologies (FAST), San Francisco, California, to appear</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>02/__/2009</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002435" target="_blank"> Minuet: Rethinking Concurrency Control in Storage Area Networks</a></h5>
<p>A. Ermolinskiy, D. Moon, B. Chun, and S. Shenker</p>
<p>Proceedings of USENIX Conference on File and Storage Technologies (FAST), San Francisco, California, to appear</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>02/__/2009</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002472" target="_blank"> Detecting Forged TCP Reset Packets</a></h5>
<p>N. Weaver, R. Sommer, and V. Paxson</p>
<p>Proceedings of the 16th Annual Network and Distributed System Security Symposium (NDSS 2009), San Diego, California, to appear</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>__/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002405" target="_blank"> An Analysis of Internet Voting Security: The Case of Estonia</a></h5>
<p>G. Schryen</p>
<p>Proceedings of the Workshop on e-Business (WEB 2008), Paris, France, 13 December 2008. Also to appear in Lecture Notes on Business Information Processing, Springer Heidelberg</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>10/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002358" target="_blank"> Spamalytics: An Empirical Analysis of Spam Marketing Conversion</a></h5>
<p>C. Kanich, C. Kreibich, K. Levchenko, B. Enright, G. Voelker, V. Paxson, and S. Savage</p>
<p>Proceedings of the 15th ACM Conference on Computer and Communications Security (ACM CCS), Alexandria, Virginia, pp. 3-14</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>10/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002422" target="_blank"> Revocation Games in Ephemeral Networks</a></h5>
<p>M. Raya, M. H. Manshaei, M. Felegyhazi, and J.-P. Hubaux</p>
<p>Proceedings of ACM Computer and Communications Security (CCS), pp. 199-210, Alexandria, Virginia</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>10/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002436" target="_blank"> Reducing Transient Disconnectivity Using Anomaly-Cognizant Forwarding</a></h5>
<p>A. Ermolinskiy and S. Shenker</p>
<p>Proceedings of the 7th ACM Workshop on Hot Topics in Networks (HotNets-VII), Calgary, Canada, pp. 91-96</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>10/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002447" target="_blank"> Pathlet Routing</a></h5>
<p>P. B. Godfrey, S. Shenker, and I. Stoica</p>
<p>Proceedings of the 7th ACM Workshop on Hot Topics in Networks (HotNets-VII), Calgary, Canada, pp. 97-102</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>10/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002462" target="_blank"> Rethinking Packet Forwarding Hardware</a></h5>
<p>D. Moon, M. Casado, T. Koponen, and S. Shenker</p>
<p>Proceedings of ACM Special Interest Group on Data Communications Workshop on Hot Topics in Networks (HotNets-VII), Calgary, Canada, pp. 1-6</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>09/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002346" target="_blank"> Predicting the Resource Consumption of Network Intrusion Detection Systems</a></h5>
<p>H. Dreger, A. Feldmann, V. Paxson, and R. Sommer</p>
<p>Proceedings of the International Symposium on Recent Advances in Intrusion Detection (RAID), Cambridge, Massachusetts, pp. 135-154</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>08/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002347" target="_blank"> Enriching Network Security Analysis with Time Travel</a></h5>
<p>G. Maier, R. Sommer, H. Dreger, A. Feldmann, V. Paxson, and F. Schneider</p>
<p>Proceedings of ACM Special Interest Group on Data Communications Conference (SIGCOMM 2008), pp. 183-194, Seattle, Washington</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>08/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002480" target="_blank"> TCP Slow Start Survey: Standards and Issues</a></h5>
<p>M. Allman</p>
<p>IETF Internet-Draft, Draft-ietf-tcpm-early-rexmt-00.txt, in progress</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>08/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002483" target="_blank"> Packet Caches on Routers: The Implications of Universal Redundant Traffic Elimination</a></h5>
<p>A. Anand, A. Gupta, A. Akella, S. Seshan, and S. Shenker</p>
<p>Proceedings of ACM Special Interest Group on Data Communications Conference (SIGCOMM 2008), San Diego, California, pp. 219-230</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>08/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002484" target="_blank"> Accountable Internet Protocol (AIP)</a></h5>
<p>D. Andersen, H. Balakrishnan, N. Feamster, T. Koponen, D. Moon, and S. Shenker</p>
<p>Proceedings of ACM Special Interest Group on Data Communications Conference (SIGCOMM 2008), Seattle, Washington, pp. 339-350</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>07/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002324" target="_blank"> RFC 5290: Comments on the Usefulness of Simple Best-Effort Traffic</a></h5>
<p>S. Floyd and M. Allman</p>
<p>Request for Comments 5290, Informational</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>07/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002325" target="_blank"> IMRG Workshop on Application Classification and Identification Report</a></h5>
<p>T. Strayer, M. Allman, G. Armitage, S. Bellovin, S. Jin and A. W. Moore</p>
<p>Editorial contribution to ACM Computer Communication Review, Vol. 38, Issue 3, pp. 87-90, July 2008</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>07/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002348" target="_blank"> Principles for Developing Comprehensive Network Visibility</a></h5>
<p>M. Allman, C. Kreibich, V. Paxson, R. Sommer, and N. Weaver</p>
<p>Proceedings of USENIX Workshop on Hot Topics in Security (HotSec ’08), San Jose, California</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>07/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002349" target="_blank"> A Tool for Offline and Live Testing of Evasion Resilience in Network Intrusion Detection Systems</a></h5>
<p>L. Juan, C. Kreibich, C.-H. Lin, and V. Paxson</p>
<p>Proceedings of the 5th GI International Conference on Detection of Intrusions and Malware \&amp; Vulnerability Assessment (DIMVA), Paris, France, pp. 267-278</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>07/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002485" target="_blank"> NOX: Towards an Operating System for Networks</a></h5>
<p>N. Gude, T. Koponen, J. Pettit, B. Pfaff, M. Casado, N. McKeown, and S. Shenker</p>
<p>ACM SIGCOMM Computer Communications Review, Vol. 38, Issue 3, pp. 105-110,</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>06/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002302" target="_blank"> Diverse Replication for Single-Machine Byzantine-Fault Tolerance</a></h5>
<p>B.-C. Chun, P. Maniatis, and S. Shenker</p>
<p>Proceedings of USENIX Annual Technical Conference, Boston, Massachusetts, pp. 287-292</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>05/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002351" target="_blank"> Efficient and Robust TCP Stream Normalization</a></h5>
<p>M. Vutukuru, H. Balakrishnan, and V. Paxson</p>
<p>Proceedings of IEEE Symposium on Security and Privacy, Oakland, California, pp. 96-110</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>04/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002261" target="_blank"> NetComplex: A Complexity Metric for Network System Designs</a></h5>
<p>B-G. Chun, S. Ratnasamy, and E. Kohler</p>
<p>To appear in Proceedings of NSDI 2008</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>04/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002291" target="_blank"> A Reactive Measurement Framework</a></h5>
<p>M. Allman and V. Paxson</p>
<p>Proceedings of Passive and Active Measurement Conference, Cleveland, Ohio, pp. 92-101</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>04/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002326" target="_blank"> On Community-Oriented Internet Measurement</a></h5>
<p>M. Allman, L. Martin, M. Rabinovich, and K. Atchinson</p>
<p>Proceedings of Passive and Active Measurement Conference, Cleveland, Ohio, pp. 112-121</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>04/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002327" target="_blank"> What Ought a Program Committee to Do?</a></h5>
<p>M. Allman</p>
<p>Proceedings of USENIX Workshop on Organizing Workshops, Conferences, and Symposia for Computer Systems (WOWCS), San Francisco, California</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>04/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002328" target="_blank"> Thoughts on Reviewing</a></h5>
<p>M. Allman</p>
<p>ACM Computer Communication Review, Vol. 38, Issue 2, pp. 47-50</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>04/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002350" target="_blank"> On the Spam Campaign Trail</a></h5>
<p>C. Kreibich, C. Kanich, K. Levchenko, B. Enright, G. Voelker, V. Paxson, and S. Savage</p>
<p>Proceedings of the First USENIX Workshop on Large-Scale Exploits and Emergent Threats, San Francisco, California</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>04/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002486" target="_blank"> OpenFlow: Enabling Innovation in Campus Networks</a></h5>
<p>N. McKeown, T. Anderson, H. Balakrishnan, G. Parulkar, L. Peterson, J. Rexford, S. Shenker, and J. Turner</p>
<p>ACM Computer Communication Review, Vol. 38, Issue 2, pp. 69-74</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>04/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002487" target="_blank"> Detecting In-Flight Page Changes with Web Tripwires</a></h5>
<p>C. Reis, S. Gribble, T. Kohno, and N. Weaver</p>
<p>Proceedings of USENIX Symposium on Networked Systems Design and Implementation (NSDI), San Fracnsico, pp. 31-44</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>03/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002356" target="_blank"> RFC 5166: Metrics for the Evaluation of Congestion Control Mechanisms</a></h5>
<p>S. Floyd</p>
<p>RFC 5166, Information, March 2008</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>03/__/2008</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002357" target="_blank"> Towards a Common TCP Evaluation Suite</a></h5>
<p>L. Andrew, C. Marcondes, S. Floyd, L. Dunn, R. Guillier, W. Gang, L. Eggert, S. Ha, and I. Rhee</p>
<p>Proceedings of the International Workshop on Protocols for Fast Long-Distance Networks (PFLDnet), Manchester, United Kingdom</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>__/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002236" target="_blank"> Distributed Algorithmic Mechanism Design</a></h5>
<p>J. Feigenbaum, M. Schapira, and S. Shenker</p>
<p>Chapter in Algorithmic Game Theory, Cambridge University Press, pp. 363-384</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>__/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002239" target="_blank"> A Modular Sensornet Architecture: Past, Present, and Future Directions</a></h5>
<p>A. Tavakoli, P. Dutta, J. Jeong, S. Kim, J. Ortiz, P. Levis, S. Shenker</p>
<p>WWSNA 2007</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>__/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002240" target="_blank"> An Architecture for Energy Management in Wireless Sensor Networks</a></h5>
<p>X. Jiang, J. Taneja, J. Ortiz, A. Tavakoli, P. Dutta, J. Jeong, D. Culler, P. Levis, and S. Shenker</p>
<p>WWSNA 2007</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>__/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002243" target="_blank"> Loss and Delay Accountability for the Internet</a></h5>
<p>K. Argyraki, P. Maniatis, O. Irzak, A. Subramanian, and S. Shenker</p>
<p>ICNP 2007</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>__/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002244" target="_blank"> Attested Append-Only Memory: Making Adversaries Stick to their Word</a></h5>
<p>B.-G. Chun, P. Maniatis, S. Shenker, and J. Kubiatowicz</p>
<p>SOSP 2007</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>11/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002290" target="_blank"> Enabling an Energy-Efficient Future Internet Through Selectively Connected End Systems</a></h5>
<p>M. Allman, K. Christensen, B. Nordman, and V. Paxson</p>
<p>Proceedings of ACM Special Interest Group on Data Communications Workshop on Hot Topics in Networks (ACM SIGGCOMM HotNets-VI), Atlanta, Georgia</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>10/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002157" target="_blank"> A Data-oriented (and Beyond) Network Architecture</a></h5>
<p>T. Koponen, M. Chawla, B.-G. Chun, A. Ermolinskiy, K.H. Kim, S. Shenker, and I. Stoica</p>
<p>Computer Communication Review, Vol. 37, Issue 4, ACM, pp. 181-192</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>10/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002286" target="_blank"> Issues and Etiquette Concerning Use of Shared Measurement Data</a></h5>
<p>M. Allman and V. Paxson</p>
<p>Proceedings of ACM SIGCOMM Conference on Internet Measurement, San Diego, California, pp. 135-140</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>10/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002287" target="_blank"> A Brief History of Scanning</a></h5>
<p>M. Allman, V. Paxson, and J. Terrell</p>
<p>Proceedings of ACM SIGCOMM Conference on Internet Measurement, San Diego, California, pp. 77-82</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>10/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002288" target="_blank"> Shunting: A Hardware/Software Architecture for Flexible, High-Performance Network Intrusion Prevention</a></h5>
<p>J. Gonzalez, V. Paxson, and N. Weaver</p>
<p>Proceedings of ACM Computer and Communication Security Conference (ACM CCS), Alexandria, Virginia, pp. 139-149</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>10/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002289" target="_blank"> An Inquiry into the Nature and Causes of the Wealth of Internet Miscreants</a></h5>
<p>J. Franklin, V. Paxson, A. Perrig, and S. Savage</p>
<p>Proceedings of ACM Computer and Communication Security Conference (ACM CCS), Alexandria, Virginia, pp. 375-388</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>09/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002285" target="_blank"> The NIDS Cluster: Scalable, Stateful Network Intrusion Detection on Commodity Hardware</a></h5>
<p>M. Vallentin, R. Sommer, J. Lee, C. Leres, V. Paxson, and B. Tierney</p>
<p>Proceedings of the International Symposium on Recent Advances in Intrusion Detection (RAID), Queensland, Australia</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>08/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002156" target="_blank"> Resolving Inter-domain Policy Disputes</a></h5>
<p>C.T. Ee, V. Ramachandran, B.-G. Chun, K. Lakshminarayanan, and S. Shenker</p>
<p>Proceedings of Conference on Applications, Technologies, Architechtures, and Procols for Computer Communications (SIGCOMM 2007), ACM, pp. 157-168, Kyoto, Japan</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>08/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002230" target="_blank"> Specifying New Congestion Control Algorithms</a></h5>
<p>S. Floyd and M. Allman</p>
<p>Request For Comments 5033, Best Current Practice 133</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>08/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002237" target="_blank"> Hidden-Action in Network Routing</a></h5>
<p>M. Feldman, J. Chuang, I. Stoica, and S. Shenker</p>
<p>IEEE Journal on Selected Areas in Communications, Vol. 25, Issue 6, IEEE Computer Society, pp. 1161-1172</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>08/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002241" target="_blank"> Ethane: Taking Control of the Enterprise</a></h5>
<p>M. Casado, M. Freedman, J. Pettit, N. McKeown, and S. Shenker</p>
<p>SIGCOMM 2007</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>08/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002242" target="_blank"> Achieving Convergence-Free Routing using Failure-Carrying Packets</a></h5>
<p>K. Lakshminarayanan, M. Caesar, M. Rangan, T. Anderson, S. Shenker, and I. Stoica</p>
<p>SIGCOMM 2007</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>08/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002284" target="_blank"> The Strengths of Weaker Identities: Opportunistic Personas</a></h5>
<p>M. Allman, C. Kreibich, V. Paxson, R. Sommer, and N. Weaver</p>
<p>Proceedings of USENIX Workshop on Hot Topics in Security (HotSec ’07), Boston, Massachusetts</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>08/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002488" target="_blank"> Stress Testing Cluster Bro</a></h5>
<p>N. Weaver and R. Sommer</p>
<p>Proceedings of USENiX DETER Community Workshop on Cyber Security Experimentation and Test, Boston, Massachusetts</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>07/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002283" target="_blank"> On the Adaptive Real-Time Detection of Fast-Propagating Network Worms</a></h5>
<p>J. Jung, R. Milito, and V. Paxson</p>
<p>Proceedings of the 4th GI International Conference on Detection of Intrusions and Malware \&amp; Vulnerability Assessment (DIMVA), Lucerne, Switzerland, pp. 175-192. Also Journal on Computer Virology, Vol. 4, Number 1, pp. 197-210, February 2008</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>05/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002141" target="_blank"> Determining an Appropriate Sending Rate Over an Underutilized Network Path</a></h5>
<p>P. Sarolahti, M. Allman, and S. Floyd</p>
<p>Computer Networks Special Issue on Protocols for Fast, Long-Distance Networks, 51(7), May 2007</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>05/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002282" target="_blank"> An Architecture for Exploiting Multi-Core Processors to Parallelize Network Intrusion Prevention</a></h5>
<p>V. Paxson, R. Sommer, and N. Weaver</p>
<p>Proceedings of  IEEE Sarnoff Symposium, pp. 1-7, Princeton, New Jersey</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>04/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002154" target="_blank"> X-trace: A Pervasive Network Tracing Framework</a></h5>
<p>R. Fonseca, G. Porter, R.H. Katz, S. Shenker, and I. Stoica</p>
<p>Proceedings of Sumposium on Networked Systems Design and Implementation (NDSI 2007), USENIX/ACM , pp. 271-284, Cambridge, Mass.</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>04/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002178" target="_blank"> RFC 4828: TCP Friendly Rate Control (TFRC): the Small-Packet (SP) Variant</a></h5>
<p>S. Floyd and E. Kohler</p>
<p>RFC 4828, Experimental, April 2007</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>04/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002238" target="_blank"> A Declarative Sensornet Architecture</a></h5>
<p>A. Tavakoli, D. Chu, J. Hellerstein, P. Levis, and S. Shenker</p>
<p>in ACM SIGBED Review, Special Edition on International Workshop on Wiresless Sensor Network Architechture (WWSNA 2007), Vol. 4, Issue 3, pp. 55-60, Cambridge, Mass.</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>02/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002109" target="_blank"> The Shunt: An FPGA-Based Accelerator for Network Intrusion Prevention</a></h5>
<p>N. Weaver, V. Paxson, and J.M. Gonzalez</p>
<p>Proceedings of International Symposium on Field Programmable Gate Arrays (FPGA), Monterey, California, pp. 199-206</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>02/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002127" target="_blank"> Congestion Control Without a Startup Phase</a></h5>
<p>D. Liu, M. Allman, S. Jin, and L. Wang</p>
<p>To appear in Proceedings of Protocols for Fast, Long Distance Networks Workshop</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>01/__/2007</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002137" target="_blank"> RFC 4782 Quick-Start for TCP and IP</a></h5>
<p>S. Floyd, M. Allman, A. Jain, and P. Sarolahti</p>
<p>Request For Comments 4782</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>__/__/2006</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002090" target="_blank"> End-host Controlled Multicast Routing</a></h5>
<p>K. Lakshminarayanan, A. Rao, I. Stoica, and S. Shenker</p>
<p>Elsevier Computer Networks, Special Issue on Overlay Distribution Structures and their Applications.</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>__/__/2006</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002134" target="_blank"> The Design and Implementation of a Declarative Sensor Network System</a></h5>
<p>D. Chu, L. Popa, A. Tavakoli, J. Hellerstein, P. Levis, S. Shenker, and I. Stoica</p>
<p>Technical Report EECS-2006-132, EECS Department, University of California, Berkeley</td>
</tr>
<tr>
<td width="79" valign="top">
<h5>__/__/2006</h5>
</td>
<td width="300">
<h5><a href="http://www.icsi.berkeley.edu/cgi-bin/pubs/publication.pl?ID=002153" target="_blank"> Service Portability</a></h5>
<p>S. Singh, S. Shenker, and G. Varghese</p>
<p>Proceedings of Hotnets 2006</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/htpasswd.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/htpasswd.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/htpasswd.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/htpasswd.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/htpasswd.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/htpasswd.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/htpasswd.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/htpasswd.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/htpasswd.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/htpasswd.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=htpasswd.wordpress.com&blog=3628479&post=37&subd=htpasswd&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://htpasswd.wordpress.com/2009/03/08/international-computer-science-institue-networking-articles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b19170af73f1c1a6ab1f4be91530bbb3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">AskApache</media:title>
		</media:content>
	</item>
		<item>
		<title>Perl CGI Script to manage multiple usernames/passwords</title>
		<link>http://htpasswd.wordpress.com/2009/03/04/perl-cgi-script-to-manage-multiple-usernamespasswords/</link>
		<comments>http://htpasswd.wordpress.com/2009/03/04/perl-cgi-script-to-manage-multiple-usernamespasswords/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 18:53:07 +0000</pubDate>
		<dc:creator>Fastserve</dc:creator>
				<category><![CDATA[htaccess]]></category>
		<category><![CDATA[htpasswd]]></category>

		<guid isPermaLink="false">http://htpasswd.wordpress.com/?p=34</guid>
		<description><![CDATA[NOTE: Not Freeware.
.htaccess manager : New Version 3.3
 This is a perl CGI script used to manage multiple usernames/passwords for .htaccess/.htpasswd directory protection. This works on most web sites and can be used to handle many password protected folders. In addition to storing the username and encrypted password, you may add additional info for your [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=htpasswd.wordpress.com&blog=3628479&post=34&subd=htpasswd&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>NOTE: Not Freeware.</p>
<blockquote><p><a href="http://www.htaccess.biz/"><span class="heading">.htaccess manager : <span style="color:red;">New Version 3.3</span></span></a></p>
<p><span class="tbody"> This is a perl CGI script used to manage multiple usernames/passwords for .htaccess/.htpasswd directory protection. This works on most web sites and can be used to handle many password protected folders. In addition to storing the username and encrypted password, you may add additional info for your members such as name, e-mail and comments to help you manage who has access to your &#8220;members only&#8221; web site. New features include setting an expiration date for a user, keyword search of your members&#8217; list and batch removal of users.</span></p></blockquote>
<p>FEATURES</p>
<p><span class="tbody"><span style="color:#0000a0;"><strong>Adding a New user</strong></span><br />
<img src="http://www.htaccess.biz/adduser2.gif" alt="" width="400" height="274" /><br />
The &#8220;Add User&#8221; function is the first that appears after logging into the script. You just need to supply a username and password then click &#8220;Add User&#8221;. All the other fields are optional. Even the password field can be left blank and the program will pick one at random. You can also supply the member&#8217;s name, e-mail address and a short comments field. If you check the box &#8220;Check to email new entry to user&#8221;, this will tell the program to send out an email with pre-configured text welcoming the user as a new member to your password protected area. If you do check this box, then you can also provide additional text in the large &#8220;Extra E-mail Text&#8221; box which will be passed along in the email sent out. </span></p>
<p><span class="tbody">You can now add an expiration date for the user, enter it in the format YYYYMMDD (20030631 for example). The script does not automatically delete users but you have the option of sorting your user list by expiration date. This field is optional and you do not have to enter an expiration date.</p>
<p><span style="color:#0000a0;"><strong>View, Modify and Delete Users</strong></span><br />
<img src="http://www.htaccess.biz/listusers2.gif" alt="" width="400" height="314" /><br />
The &#8220;List User&#8221; screen does three things, it provides a list of all your members, allows you to delete a member and modify any information for a particular member. The user list shows &#8220;Username &#8211; Member Name &#8211; Email address &#8211; comments&#8221;. You can easily control the size of this box by changing the scrollsize option in the program settings. To delete a user all you have to do is highlight then click the delete button. To Modify a user, you also highlight the record then you can modify the password, name, email and comments field. You can even check the box to resend their confirmation email. If one of your members forgets their password, you just come to this screen, highlight them, enter a new password, check the &#8220;e-mail&#8221; box and click &#8220;Modify User&#8221;. </span></p>
<p><span class="tbody"><strong>Sort By Expiration</strong> : Will sort all of your members by expiration date in ascending order.<br />
<strong>Sort by username</strong> : Sorts the list by username (the default view)<br />
<strong>Keyword Search</strong> : Will search the username, name, email, comments and expiration field for whatever you type in</p>
<p><span style="color:#0000a0;"><strong>Change Directory</strong></span><br />
<img src="http://www.htaccess.biz/changedir.gif" alt="" width="400" height="174" /><br />
&#8220;Change Protected Directory&#8221; screen allows you to manage password protection on another folder. This also makes it easier than going back to the login screen. This screen displays the path you have setup where your password protected directories will be located. You just type in the new folder name and click &#8220;Change Directory&#8221;. This way you can use the script to manage as many password protected folders as you like. If you are protecting a folder within another folder then you type in for example : <strong>member_area/secure1</strong> and then the script will manage the &#8220;secure1&#8243; folder located in the &#8220;member_area&#8221; folder. You will also find two additional buttons on this screen. One is to view the .htaccess file and the other for the .htpasswd file. This is a good thing to do every now and then so you can make backups of your member database.</p>
<p><span style="color:#0000a0;"><strong>Generate .htaccess File</strong></span><br />
<img src="http://www.htaccess.biz/generate.gif" alt="" width="400" height="180" /><br />
When you first setup password protection on a folder, you need to create a .htaccess file inside it. You can either do this manually or have the script create this file for you. You do not need to do this every time you add a user. Once a .htaccess file has been created in a folder, you don&#8217;t need to run this function again. The Directory field will display the folder name you are about to generate a .htaccess file for. The Realm is for the message that will be displayed in the pop-up box that appears when a user tries to login to your secure area. If you want the script to create the file, then check the &#8220;Create .htaccess file on Server&#8221;. As for the format you want, the majority of unix servers use &#8220;.htaccess file for apache&#8221; Some web hosting companies use Cobalt RAQ or Zeus.</p>
<p><span style="color:#0000a0;"><strong>Password Retrieval</strong></span> (Version 3.2+)<br />
<img src="http://www.htaccess.biz/forgotpass33.gif" alt="" width="400" height="291" /><br />
You can now have your members generate new passwords for themselves if they forget their login information. To activate this feature in the script, send your users to :</span></p>
<p><span class="tbody"><strong>http://www.yourdomain.com/admin.cgi?action=F&amp;targetdir=dirname</strong></span></p>
<p><span class="tbody">Where &#8220;dirname&#8221; is the name of the directory you are protecting (same directory you type in when accessing admin.cgi)<br />
If a member forgets their username, they just type in their email address and it will be sent to them. If they forget their password, they just type in their e-mail and username then a new password will be generated. </span></p>
<p><span class="tbody">Version 3.3 just added the option for users to select their own new password if they supply their username and their old password.</p>
<p><span style="color:#0000a0;"><strong>Extract E-mails</strong></span><br />
<img src="http://www.htaccess.biz/extract.gif" alt="" width="400" height="89" /><br />
Extract E-mails allows you to export a list of all your members&#8217; email addresses. The list will be formatted one email address per line. Some email programs require that each address have a comma after it which you can select when exporting. The addresses will appear on the next page which you can then copy/paste into Eudora/Outlook etc.</p>
<p><span style="color:#0000a0;"><strong>Mass E-mails</strong></span> (Version 3.2+)<br />
<img src="http://www.htaccess.biz/massemail.gif" alt="" width="400" height="191" /><br />
Allows you to send a broadcast email message to all members. E-mails can be configured to send specific information about each user using the %tag%.<br />
Example : Hello %name%,<br />
Your userid is : %username%<br />
Your email is : %email%<br />
Your account expires on : %expiration%<br />
Comments about your account : %comments%</p>
<p><span style="color:#0000a0;"><strong>Manual Import</strong></span><br />
<img src="http://www.htaccess.biz/manualimport.gif" alt="" width="400" height="195" /><br />
If you have a large list of usernames that you want to add as members in just one click then the Manual Import feature will handle this. All you do is copy/paste or type the list into the large text box. Here is a sample of what the list would look like :<br />
<span style="color:#0000cc;"> username,password<br />
joe,joe123<br />
jack,jack887<br />
jane,janepass<br />
</span><br />
You can also import the additional fields :<br />
<span style="color:#0000cc;"> username, password, name, email, comments, expiration<br />
joe,joe123,Joe Smith,joe@smith.com,friend<br />
jack,jack887,Jack Smith,jack@smith.com,<br />
</span><br />
Also, you can even leave the password field blank to have the script automatically generate it for you :<br />
<span style="color:#0000cc;"> joe,,Joe Smith,joe@smith.com<br />
jack,,Jack Smith,jack@smith.com<br />
</span> (note the two commas after eachother)</p>
<p>You can also automatically send an email to each member that you import by checking the &#8220;Send E-mail&#8221; box. Even the comments field can be sent if you wish.<br />
Whenever you run the import, the script will always check to make sure that the username doesn&#8217;t already exits. If any username in your list exists, no records will be imported.</p>
<p><span style="color:#0000a0;"><strong>Import From File</strong></span><br />
<img src="http://www.htaccess.biz/importfile.gif" alt="" width="400" height="102" /><br />
The import from file feature is if you have a list of members too large to fit in the manual import box or maybe you have another program that exports the list of usernames/passwords to a file that need to be imported later. By default, the name of the file that the program looks for is called <strong>htimport.txt</strong> and will be located in the directory you are protecting. The format for records to be imported is the same as the manual import :<br />
<span style="color:#0000cc;"> username,password<br />
</span> or<br />
<span style="color:#0000cc;"> username,password,name,email,comments, expiration<br />
</span> or<br />
<span style="color:#0000cc;"> username,,name,email,comments<br />
</span><br />
Whenever you run the import, the script will always check to make sure that the username doesn&#8217;t already exits. If any username in your list exists, no records will be imported.</p>
<p><span style="color:#0000a0;"><strong>Change Program Settings</strong></span><br />
<img src="http://www.htaccess.biz/settings.gif" alt="" width="400" height="350" /><br />
This screen allows you to update configurations in the program without having to manually edit the admin.cgi script. The settings you can change are :<br />
<span style="color:#0000cc;">Base directory</span> : The physical server path to where your protected folder or folders are located. (Not to be confused with the URL or domain name to your web site). example : <strong>/www/yourdomain/htdocs/</strong></p>
<p><span style="color:#0000cc;">Password</span> : The master password to access the admin.cgi script with.<br />
<span style="color:#0000cc;">Sendmail</span> : The path to sendmail for your server.<br />
<span style="color:#0000cc;">Scroll Size</span> : The number of members that will be displayed in the &#8220;List Users&#8221; screen before it scrolls.<br />
<span style="color:#0000cc;">Email From</span> : Your e-mail address goes here. This is also the address used when sending email confirmations to your new members, they will see this in the From field. You can also add your name in parenthesis : joe@smith.com (Joe Smith)<br />
<span style="color:#0000cc;">Email Subject</span> : The subject of the emails which are sent out to new members.<br />
<span style="color:#0000cc;">Top of Email</span> : The text that will appear in the email sent to users. After this text will come the username and password.<br />
<span style="color:#0000cc;">Bottom of Email</span> : The text that will appear after the username/password and the end of the email.<br />
The data for all these variables is stored in a file called adminvars.cgi<br />
You do not need to create this file on the server. If the file is not there it will be created with default settings. If for some reason your script does not have permission to create the file, you may need to upload a blank one and chmod it to 777. The default admin password is test. </span></p>
<p><strong>FAQ</strong></p>
<p><span class="tbody"></p>
<li><span style="color:#0000a0;"><strong>Does my server support .htaccess ?</strong></span><br />
In the majority of cases, if it&#8217;s unix and runs the apache server then yes. The best way to find  out is by uploading a .htaccess file to a subdirectory on your server then access it with your browser  and see if it asks you for a login.</p>
<ul>
<li>Here&#8217;s one you can use on your site : .htaccess upload this file to a directory on your server (in ASCII mode), example : yourdomain.com/members/ then rename it to .htaccess (yes, that&#8217;s a period infront of &#8220;htaccess&#8221;)</li>
<li>Then using your browser, go to http://www.yourdomain.com/members/ If you&#8217;re prompted to enter a username and password, then it will work!</li>
</ul>
</li>
<li><span style="color:#0000a0;"><strong>After a member enters their username/password to the protected directory, do they need to re-enter it each time they access a new file ?</strong></span><br />
No, the way .htaccess works, is it protects all files in the directory it is in. So once a user is authenticated, they have access to everything in that folder. But if a user bookmarks a page in the secure area, they will be required to re-enter the user/pass if they shut down their web browser and restart.</li>
<li><span style="color:#0000a0;"><strong>Can I protect multiple directories with the same list of users ?</strong></span><br />
Yes, in this case, you would have the admin.cgi script only manage one of the directories for you, then all you would need to do is copy the same .htaccess file over to the new directory you want to protect. If you look in the .htaccess file, it says right there the full path to the .htpasswd file it will look for to authenticate users <strong>AuthUserFile /home/secure/.htpasswd</strong>.</li>
<li><span style="color:#0000a0;"><strong>Can I protect multiple directories with a different list of users ?</strong></span><br />
Yes, in this case, you just run the admin.cgi script and tell it to refresh to a new directory to access that list of users. By doing this, each directory will have its own .htpasswd and .htaccess file.</li>
<li><span style="color:#0000a0;"><strong>Will this work with Frontpage Extensions ?</strong></span><br />
Yes, 90% of the time it will. Just as long as the directory you are protecting is setup as a regular directory in frontpage and not a &#8220;subweb&#8221;. The idea is to tell Frontpage not to overwrite the .htaccess file that admin.cgi creates</li>
<li><span style="color:#0000a0;"><strong>Can the script automatically send passwords to users who forget their login ?</strong></span><br />
Yes, this feature is available as of version 3.2. Just provide a link for your members to admin.cgi?action=F&amp;targetdir=dirname. They just have to supply their e-mail address and username then the script will generate a new password and e-mail it to them.</li>
<li><span style="color:#0000a0;"><strong>How do I configure the e-mail that is sent to members ?</strong></span><br />
When you add a new user, you have the option of sending them an e-mail with their new username/password (saves you the time of having to do it manually each time). You can configure the subject of the emails, the sender&#8217;s name and e-mail address (you) and the text in the body of the email. These settings can be changed by logging into admin.cgi and scrolling down to the section labeled &#8220;Change Program Settings&#8221;. You can read about this in the Features page.</li>
<li><span style="color:#0000a0;"><strong>How do I add a long list of users at once (instead of adding them one at a time) ?</strong></span><br />
This is what the Manual Import feature does. After running the script, scroll down to &#8220;Manual Import&#8221; and you&#8217;ll see a large TEXT box, this is where you can copy/paste your list of users. See the Features page.</li>
<li><span style="color:#0000a0;"><strong>Will this script work on NT server ?</strong></span><br />
No.</li>
<li><span style="color:#0000a0;"><strong>I don&#8217;t know anything about CGI, chmod etc. can I still use it ?</strong></span><br />
Not a problem, we&#8217;ll install the script for you. When you place your order, be sure to provide your URL (http://&#8230;.) ftp username and password. Almost all installs are completed the same day you place your order.</li>
<li><span style="color:#0000a0;"><strong>What if the program does not run on my server, is there a refund ?</strong></span><br />
We will not charge your credit card until the program works successfully on your web hosting account/server. Credit cards are usually processed a few days after you submit your order.</li>
<p></span></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/htpasswd.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/htpasswd.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/htpasswd.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/htpasswd.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/htpasswd.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/htpasswd.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/htpasswd.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/htpasswd.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/htpasswd.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/htpasswd.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=htpasswd.wordpress.com&blog=3628479&post=34&subd=htpasswd&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://htpasswd.wordpress.com/2009/03/04/perl-cgi-script-to-manage-multiple-usernamespasswords/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b19170af73f1c1a6ab1f4be91530bbb3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">AskApache</media:title>
		</media:content>

		<media:content url="http://www.htaccess.biz/adduser2.gif" medium="image" />

		<media:content url="http://www.htaccess.biz/listusers2.gif" medium="image" />

		<media:content url="http://www.htaccess.biz/changedir.gif" medium="image" />

		<media:content url="http://www.htaccess.biz/generate.gif" medium="image" />

		<media:content url="http://www.htaccess.biz/forgotpass33.gif" medium="image" />

		<media:content url="http://www.htaccess.biz/extract.gif" medium="image" />

		<media:content url="http://www.htaccess.biz/massemail.gif" medium="image" />

		<media:content url="http://www.htaccess.biz/manualimport.gif" medium="image" />

		<media:content url="http://www.htaccess.biz/importfile.gif" medium="image" />

		<media:content url="http://www.htaccess.biz/settings.gif" medium="image" />
	</item>
		<item>
		<title>File Permission Security on Shared Web Hosting</title>
		<link>http://htpasswd.wordpress.com/2008/10/28/file-permission-security-on-shared-web-hosting/</link>
		<comments>http://htpasswd.wordpress.com/2008/10/28/file-permission-security-on-shared-web-hosting/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 01:10:03 +0000</pubDate>
		<dc:creator>Fastserve</dc:creator>
				<category><![CDATA[anti-hacking]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[webhost]]></category>

		<guid isPermaLink="false">http://htpasswd.wordpress.com/?p=32</guid>
		<description><![CDATA[Some web hosts allows you to create multiple users per account. Each user can have domain assigned to its home home directory accessible via FTP or SSH/SCP. The problem with multiple users on the same account is that they share the same default unix group, and default permissions allow their files to be easily modified [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=htpasswd.wordpress.com&blog=3628479&post=32&subd=htpasswd&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Some web hosts allows you to create multiple users per account. Each user can have domain assigned to its home home directory accessible via FTP or SSH/SCP. The problem with multiple users on the same account is that they share the same default unix group, and default permissions allow their files to be easily modified by the members of this group. Usually this doesn&#8217;t pose a problem as each user is probably trusted by account owner to not to mess with others files, but if one of the users have their web application hacked then all other users on the same account will be in danger.</p>
<p>By default (on DreamHost) all files in your account are created with 644 privileges and directories are with 775. That means any user can read your files and any user from the same account can move and add files in your freshly made directories. Your home directory is different, though. By default it carries 751 attribute meaning that only members of your group can see your files, but can&#8217;t add any new. These group access schemes are possible, because every user in your account has its primary/default group set to &#8220;pgxxxxxx&#8221;, which is assigned to every new file you create by default. The normal way to secure users from web-intrusion is to assign a separate group to the web-server user, removing it from default group. This way, exploited scripts will not be able to traverse into home directories of other users on your account. To allow account users to update centralized web-site they could be added to web-site group explicitly. But this &#8220;normal way&#8221; doesn&#8217;t work with DreamHost, because you can&#8217;t delete web-user from the default group and unless you set access for every new file explicitly, it will be possible for an intruder to read it.</p>
<p>To make managing privileges easier in interactive sessions &#8220;umask 007&#8243; command can be specified in your .bash_profile &#8211; this makes all new files carry xx0 mask. You also need to control your scripts (web based or cron/shell) so that they set mask for critical files explicitly. To secure account users from access by means of hacked user script you would also like to define another group for every user in your account and change group ownership of the user&#8217;s home directory to that group with &#8220;set gid&#8221; bit set (and optional umask 007 in .bash_profile).</p>
<ol>
<li> Add a separate user and group for every domain where apache will be running</li>
<li> Add a separate group for other user accounts</li>
<li> Change the default group for new files created by your users by changing the group of their home directory and setting set gid bit for it (it is impossible to do this with FTP accounts, therefore you will need to login in each account via SSH)</li>
<li> Add users who need access to web-site into the web-user group</li>
<li> Optionally set umask 007 in .bash_profile for every user to tweak default DreamHost 775/664 permissions to something like 770/660 for directories and files that are not meant to be read by Apache (660 could also be used for all web scripts including .php as they are not read by dhapache CGI, but merely executed)</li>
</ol>
<h2>Apache Security</h2>
<p>All your web files that need to be read by Apache should be readable by everyone as Apache itself is run under dhapache user. However, executable scripts like .php are executed under your own user and do not have to be world readable as they are not actually read by Apache, but executed via suEXEC. Quite the opposite &#8211; to prevent your code or database settings from being messed by any third-parties you SHOULD set permissions to these files explicitly to something like 640 or even 600 depending on who do you trust.</p>
<h2>Multiuser security setup example</h2>
<p>For our example, we will create a <em>example_www</em> user and a <em>new_webroot</em> group for serving web files with apache and setup a <em>example</em> user with a &#8216;rfrc<em> group to manage mail and keep other files on DH privately. Since these records already exist, you will need to subsitute your own names.</em></p>
<ul>
<li> Login to DreamHost panel and create the users <em>example_www</em> and <em>example</em> with shell access.</li>
<li> From groups tab create two groups &#8211; <em>new_webroot</em> and <em>rfrc</em>. Note that users created in previous step are still members of the same default <em>pg</em>xxxxxx group.</li>
<li> Add <em>example_www</em> to &#8216;the &#8216;new_webroot<em> group and </em>example<em> to both the </em>new_webroot<em> and </em>rfrc<em> groups</em></li>
<li> Move your domain to <em>example_www</em> account (mine is example.org)</li>
<li> Now login to SSH with your <em>example_www</em> user and change the default group for your home directory with &#8220;sgid&#8221; bit set to make all current and new files/directories created in this directory have the same <em>new_webroot</em> group.</li>
</ul>
<pre> $ chgrp -R new_webroot .
 $ chmod 2751 .
 $ chmod 2771 example.org</pre>
<blockquote><p>By setting 2771 the directory will be writable by the owner, the group and will be only executable by others. The contents of an executable only directory cannot be listed, but the files inside it can be read (if the permissions of the file allow it). It is important that the directory can be executable in order to allow static content (e.g. .html files) inside it to be read. Remember that directories you don&#8217;t want anyone to have web access to, should be 0770 (writable by the owner and group, or 0750 writable by the owner and readable by group). Such strict permissions should by applied to password files, php include files or databases files (such as SQLite, BDB, etc).</p></blockquote>
<ul>
<li> Do the same for <em>example</em> user, but specify <em>rfrc</em> group instead.</li>
</ul>
<blockquote><p><kbd>chgrp -R rfrc .</kbd><br />
<kbd>chmod 2751 .</kbd></p></blockquote>
<ul>
<li> Optionally modify umask in .bash_profile in user&#8217;s home to 007 to make all files created by this user have 660 permissions set by default. If you want that newly created files by accessible by the web, you need to manually setup it&#8217;s permissions to 664.</li>
</ul>
<p>Now I can login as the user &#8220;example&#8221; and update the web-site in the ../example_www/example.org directory. There is one more setup needed. Because files copied from other accounts can have 644 permissions set instead of 664, you need a script which will update permissions to 664 or 660 to allow other group members modify such files.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/htpasswd.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/htpasswd.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/htpasswd.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/htpasswd.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/htpasswd.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/htpasswd.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/htpasswd.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/htpasswd.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/htpasswd.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/htpasswd.wordpress.com/32/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=htpasswd.wordpress.com&blog=3628479&post=32&subd=htpasswd&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://htpasswd.wordpress.com/2008/10/28/file-permission-security-on-shared-web-hosting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b19170af73f1c1a6ab1f4be91530bbb3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">AskApache</media:title>
		</media:content>
	</item>
		<item>
		<title>Automatic Post-commit Checkout</title>
		<link>http://htpasswd.wordpress.com/2008/10/27/automatic-post-commit-checkout/</link>
		<comments>http://htpasswd.wordpress.com/2008/10/27/automatic-post-commit-checkout/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 02:39:52 +0000</pubDate>
		<dc:creator>Fastserve</dc:creator>
				<category><![CDATA[htaccess]]></category>
		<category><![CDATA[htpasswd]]></category>
		<category><![CDATA[dhapache]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://htpasswd.wordpress.com/?p=30</guid>
		<description><![CDATA[Subversion can be a very useful tool for developing Web sites or Web-based applications. You may wonder, though, how that would work. After you commit your changes to your repository, how do you have them reflected on your site? The easiest method is to have your site&#8217;s directory on the server be a working copy [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=htpasswd.wordpress.com&blog=3628479&post=30&subd=htpasswd&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Subversion can be a very useful tool for developing Web sites or Web-based applications. You may wonder, though, how that would work. After you commit your changes to your repository, how do you have them reflected on your site? The easiest method is to have your site&#8217;s directory on the server be a working copy checked out from your Subversion repository. If you elect to do this be certain to modify your site&#8217;s .htaccess to prevent users from browsing Subversion&#8217;s control files. Something simple in the root of your site such as the following will suffice.</p>
<pre>RedirectMatch 403 /\.svn.*$</pre>
<p>Additionally you can configure your site to automatically check out the current sources from your repository by using Subversion&#8217;s &#8220;<a class="external text" title="http://svnbook.red-bean.com/en/1.1/ch05s02.html#svn-ch-5-sect-2.1" rel="nofollow" href="http://svnbook.red-bean.com/en/1.1/ch05s02.html#svn-ch-5-sect-2.1">hook scripts</a>&#8220;. In short, the script called hooks/post-commit will be executed by the web server each time new sources are checked into your repository. Be advised that when the web server executes this script it is running in the security context of the dhapache user &#8212; this user does not and should not (for security reasons) have the necessary permissions to modify the files in your web site&#8217;s directory. As such we need to arrange for the post-commit script to run the update in the security context of a user with the privileges necessary to update your site.</p>
<p>Users familiar with UNIX systems will recognize that this is a task for a setuid binary. Unfortunately the DreamHost /home/ directories are NFS filesystems which are, for security reasons, mounted with setuid disabled. Fortunately the workaround is trivial &#8212; simply set up your update script as a CGI script and have the Subversion post-commit hook invoke this script. Instructions follow.</p>
<p>1. Create a private directory on your website to host your updater script such as /home/username/mysite.com/cgi-bin/pri</p>
<p>1b. And set its permissions so that only the user has write access to it.</p>
<pre>chmod 755 pri</pre>
<p>2. Secure the private directory by creating a .htaccess file with contents similar to the following.</p>
<pre>AuthName "Dialog prompt"
AuthType Basic
AuthUserFile /home/username/mysite.com/cgi-bin/pri/.htpasswd
Require valid-user</pre>
<p>3. Using the htpasswd utility create the .htpasswd file by running the following command in your /home/username/mysite.com/cgi-bin/pri directory. For security reasons make up a new username and password and do not re-use the username and password of a user you have created on your server or a user you have given access to your subversion repository.</p>
<pre>htpasswd -bc .htpasswd someuser somepasswd</pre>
<p>4. Now that you have created and secured a directory for this special CGI script to live in, create a script in that directory called do_update.cgi with the following contents.</p>
<pre>#!/bin/sh
set -f
echo "Content-type: text/plain; charset=iso-8859-1"
echo
/usr/bin/svn update /home/username/mysite.com</pre>
<p>4b. Don&#8217;t forget to give execution privilege to your file.  Only the user can have write access to it.</p>
<pre>chmod 755 do_update.cgi</pre>
<p>5. Finally, modify your /home/username/svn/projectname/hooks/post-commit to invoke your CGI script so your site will update after each commit.</p>
<pre>#!/bin/bash
wget --http-user=someuser --http-passwd=somepasswd -O - <a class="external free" title="http://mysite.com/cgi-bin/pri/do_update.cgi" rel="nofollow" href="http://mysite.com/cgi-bin/pri/do_update.cgi">http://mysite.com/cgi-bin/pri/do_update.cgi</a></pre>
<p>5b. Don&#8217;t forget to give execution privilege to your file.  Again, only the user can have write access to it.</p>
<pre>chmod 755 post-commit</pre>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/htpasswd.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/htpasswd.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/htpasswd.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/htpasswd.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/htpasswd.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/htpasswd.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/htpasswd.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/htpasswd.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/htpasswd.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/htpasswd.wordpress.com/30/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=htpasswd.wordpress.com&blog=3628479&post=30&subd=htpasswd&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://htpasswd.wordpress.com/2008/10/27/automatic-post-commit-checkout/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b19170af73f1c1a6ab1f4be91530bbb3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">AskApache</media:title>
		</media:content>
	</item>
		<item>
		<title>Blocking Abuse by IP Address</title>
		<link>http://htpasswd.wordpress.com/2008/09/21/blocking-abuse-by-ip-address/</link>
		<comments>http://htpasswd.wordpress.com/2008/09/21/blocking-abuse-by-ip-address/#comments</comments>
		<pubDate>Sun, 21 Sep 2008 07:27:21 +0000</pubDate>
		<dc:creator>Fastserve</dc:creator>
				<category><![CDATA[anti-hacking]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[abuse]]></category>
		<category><![CDATA[allow]]></category>
		<category><![CDATA[authorized]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://htpasswd.wordpress.com/?p=28</guid>
		<description><![CDATA[IP Abuse Detection Script
This shell script checks the access and error logs generated by apache for a particular domain, looking for the IP addresses that have connected to your site the most. It checks for IP addresses that trigger a Concurrent Connection Limit Exceeded error, which is a good sign they are an automated bot [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=htpasswd.wordpress.com&blog=3628479&post=28&subd=htpasswd&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><h2><span class="mw-headline"><a href="http://www.askapache.com/security/htaccess-ip-blocking.html">IP Abuse Detection Script</a></span></h2>
<blockquote cite="http://wiki.dreamhost.com/Block_IP_Abuse"><p>This shell script checks the access and error logs generated by apache for a particular domain, looking for the IP addresses that have connected to your site the most. It checks for IP addresses that trigger a <strong>Concurrent Connection Limit Exceeded</strong> error, which is a good sign they are an automated bot of some kind, making over 20 requests to your site at the same time. This script also checks for <strong>Internal Recursion Errors</strong> which can have very negative effects on your speed and resources, and are basically internal looping problems generally caused by improperly configured <a title="Htaccess" href="http://wiki.dreamhost.com/Htaccess">Htaccess</a> setups.</p>
<p>Once the script finishes scanning your logs for those events, it automatically generates <tt>.htaccess</tt> code that you may add to your sites root <tt>.htaccess</tt> file to block those IP addresses the script identified as abusive.  The only IP addresses included in the generated <tt>.htaccess</tt> file are those that have no reverse dns.
</p></blockquote>
<p><a class="image" title="alt text" href="http://wiki.dreamhost.com/Image:Block-ip-abuse.png"><img src="http://wiki.dreamhost.com/images/3/3c/Block-ip-abuse.png" border="0" alt="alt text" width="625" height="413" /></a></p>
<p><a name="Installation"></a></p>
<h3><span class="mw-headline">Installation</span></h3>
<ol>
<li> Log in to your account using <a title="SSH" href="http://wiki.dreamhost.com/SSH">SSH</a></li>
<li> Save this code in your <tt>$HOME</tt> directory as <tt>ip-abuse-lookup.sh</tt>
<ol>
<li> Run <tt>pico $HOME/ip-abuse-lookup.sh</tt></li>
<li> Copy the code to the screen by clicking the right-mouse-button</li>
<li> Hold down the <tt>Ctrl</tt> button and then press <tt>x</tt> to save</li>
</ol>
</li>
<li> Run the command <tt>dos2unix -dv $HOME/ip-abuse-lookup.sh</tt> to fix line break issues</li>
<li> Run the command <tt>chmod -v 744 $HOME/ip-abuse-lookup.sh</tt> to make executable</li>
</ol>
<p><a name="Running_the_Script"></a></p>
<h3><span class="mw-headline">Running the Script</span></h3>
<p>From your <tt>$HOME</tt> directory (<tt>cd $HOME</tt>), run <tt>./ip-abuse-lookup.sh</tt> to execute the program.</p>
<p><a name="Example_Generated_.htaccess"></a></p>
<h3><span class="mw-headline">Example Generated .htaccess</span></h3>
<p>This script will also generate code that you can place in your <a title="Htaccess" href="http://wiki.dreamhost.com/Htaccess">.htaccess file</a> to block specific abusers.</p>
<pre>## IP-ABUSE-LOOKUP
Order Allow,Deny
Allow from All
Deny from 6.132.177.129 27.67.117.178 6.135.166.102 8.93.225.133
Deny from 21.194.136.15 22.120.61.3 6.252.139.246 9.64.50.83
Deny from 8.123.144.98 21.249.83.87 29.85.238.28 25.214.237.62
Deny from 22.115.130.23 13.57.156.241 14.121.4.82 6.208.172.177</pre>
<p><a name="ip-abuse-lookup.sh"></a></p>
<h3><span class="mw-headline">ip-abuse-lookup.sh</span></h3>
<pre>#!/bin/sh
# Version 0.2, 2008-04-20

# User-contributed script. Not sponsored by DreamHost.
# Script created 2008-01-16 by AskApache 

### SHELL OPTIONS
set +o noclobber  # allowed to clobber files
set +o noglob     # globbing on
set +o xtrace     # change to - to enable tracing
set +o verbose    # change to - to enable verbose debugging
set -e            # abort on first error</pre>
<p>The <a href="http://wiki.dreamhost.com/Block_IP_Abuse">full script is here</a>, but the authors has an updated <a href="http://www.askapache.com/security/htaccess-ip-blocking.html">Ip Abuse Blocking with .htaccess</a> page.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/htpasswd.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/htpasswd.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/htpasswd.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/htpasswd.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/htpasswd.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/htpasswd.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/htpasswd.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/htpasswd.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/htpasswd.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/htpasswd.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=htpasswd.wordpress.com&blog=3628479&post=28&subd=htpasswd&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://htpasswd.wordpress.com/2008/09/21/blocking-abuse-by-ip-address/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b19170af73f1c1a6ab1f4be91530bbb3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">AskApache</media:title>
		</media:content>

		<media:content url="http://wiki.dreamhost.com/images/3/3c/Block-ip-abuse.png" medium="image">
			<media:title type="html">alt text</media:title>
		</media:content>
	</item>
		<item>
		<title>Apache mod_auth_digest authentication</title>
		<link>http://htpasswd.wordpress.com/2008/08/12/apache-mod_auth_digest-authentication/</link>
		<comments>http://htpasswd.wordpress.com/2008/08/12/apache-mod_auth_digest-authentication/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 01:48:16 +0000</pubDate>
		<dc:creator>Fastserve</dc:creator>
				<category><![CDATA[apache.org]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[htpasswd]]></category>
		<category><![CDATA[digest authentication]]></category>
		<category><![CDATA[htdigest]]></category>
		<category><![CDATA[md5]]></category>

		<guid isPermaLink="false">http://htpasswd.wordpress.com/2008/08/12/apache-mod_auth_digest-authentication/</guid>
		<description><![CDATA[Digest authentication is described in RFC 2617.
Directives
# AuthDBGroupFile 
# AuthDBUserFile 
# AuthDBAuthoritative 
# AuthDBMGroupFile 
# AuthDBMUserFile 
# AuthDBMAuthoritative 
# AuthDigestFile 
# AuthDigestGroupFile 
# AuthDigestQop 
# AuthDigestNonceLifetime 
# AuthDigestNonceFormat 
# AuthDigestNcCheck 
# AuthDigestAlgorithm 
# AuthDigestDomain 
# Using Digest Authentication
Using Digest Authentication
Using MD5 Digest authentication is very simple. Simply set up authentication normally, using &#8220;AuthType Digest&#8221; and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=htpasswd.wordpress.com&blog=3628479&post=24&subd=htpasswd&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><blockquote><p>Digest authentication is described in <a href="http://rfc.askapache.com/rfc2617/">RFC 2617</a>.</p>
<p>Directives</p>
<h3><span style="color:#333399;"># AuthDBGroupFile </span></h3>
<h3><span style="color:#333399;"># AuthDBUserFile </span></h3>
<h3><span style="color:#333399;"># AuthDBAuthoritative </span></h3>
<h3><span style="color:#333399;"># AuthDBMGroupFile </span></h3>
<h3><span style="color:#333399;"># AuthDBMUserFile </span></h3>
<h3><span style="color:#333399;"># AuthDBMAuthoritative </span></h3>
<h3><span style="color:#333399;"># AuthDigestFile </span></h3>
<h3><span style="color:#333399;"># AuthDigestGroupFile </span></h3>
<h3><span style="color:#333399;"># AuthDigestQop </span></h3>
<h3><span style="color:#333399;"># AuthDigestNonceLifetime </span></h3>
<h3><span style="color:#333399;"># AuthDigestNonceFormat </span></h3>
<h3><span style="color:#333399;"># AuthDigestNcCheck </span></h3>
<h3><span style="color:#333399;"># AuthDigestAlgorithm </span></h3>
<h3><span style="color:#333399;"># AuthDigestDomain </span></h3>
<h3><span style="color:#333399;"># Using Digest Authentication</span></h3>
<p>Using Digest Authentication</p>
<p>Using MD5 Digest authentication is very simple. Simply set up authentication normally, using &#8220;AuthType Digest&#8221; and &#8220;AuthDigestFile&#8221; instead of the normal &#8220;AuthType Basic&#8221; and &#8220;AuthUserFile&#8221;; also, replace any &#8220;AuthGroupFile&#8221; with &#8220;AuthDigestGroupFile&#8221;. Then add a &#8220;AuthDigestDomain&#8221; directive containing at least the root URI(s) for this protection space. Example:</p>
<pre>AuthType Digest</pre>
<pre>AuthName "private area"</pre>
<pre>AuthDigestDomain /private/ http://mirror.my.dom/private2/</pre>
<pre>AuthDigestFile /web/auth/.digest_pw
Require valid-user</pre>
<p>Note: Digest authentication is more secure than Basic authentication, but only works with supporting browsers. As of September 2004, major browsers that support digest authentication include Amaya, Konqueror, MS Internet Explorer for Mac OS X and Windows (although the Windows version fails when used with a query string &#8212; see &#8220;Working with MS Internet Explorer&#8221; below for a workaround), Mozilla, Netscape 7, Opera, and Safari. lynx does not support digest authentication. Since digest authentication is not as widely implemented as basic authentication, you should use it only in environments where all users will have supporting browsers.</p>
<p><cite><a href="http://httpd.apache.org/docs/1.3/mod/mod_auth_digest.html">Apache module mod_auth_digest</a></cite></p></blockquote>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/htpasswd.wordpress.com/24/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/htpasswd.wordpress.com/24/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/htpasswd.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/htpasswd.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/htpasswd.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/htpasswd.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/htpasswd.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/htpasswd.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/htpasswd.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/htpasswd.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/htpasswd.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/htpasswd.wordpress.com/24/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=htpasswd.wordpress.com&blog=3628479&post=24&subd=htpasswd&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://htpasswd.wordpress.com/2008/08/12/apache-mod_auth_digest-authentication/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b19170af73f1c1a6ab1f4be91530bbb3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">AskApache</media:title>
		</media:content>
	</item>
		<item>
		<title>Some AuthDigest Configuration Directives</title>
		<link>http://htpasswd.wordpress.com/2008/08/12/some-authdigest-configuration-directives/</link>
		<comments>http://htpasswd.wordpress.com/2008/08/12/some-authdigest-configuration-directives/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 01:32:13 +0000</pubDate>
		<dc:creator>Fastserve</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://htpasswd.wordpress.com/?p=22</guid>
		<description><![CDATA[
static const command_rec digest_cmds[] =
{
    AP_INIT_TAKE1("AuthName", set_realm, NULL, OR_AUTHCFG,
     "The authentication realm (e.g. \"Members Only\")"),
    AP_INIT_ITERATE("AuthDigestProvider", add_authn_provider, NULL, OR_AUTHCFG,
                     "specify the auth providers for a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=htpasswd.wordpress.com&blog=3628479&post=22&subd=htpasswd&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><blockquote>
<pre><a href="http://www.askapache.com/mod_auth_digest.html"><span style="color:#00ff00;"><strong>static</strong></span> <span style="color:#00ff00;"><strong>const</strong></span> command_rec digest_cmds[] =</a>
{
    AP_INIT_TAKE1(<span style="color:#ff40ff;"><strong>"AuthName"</strong></span>, set_realm, <span style="color:#ff40ff;"><strong>NULL</strong></span>, OR_AUTHCFG,
     <span style="color:#ff40ff;"><strong>"The authentication realm (e.g. </strong></span><span style="color:#ff6060;"><strong>\"</strong></span><span style="color:#ff40ff;"><strong>Members Only</strong></span><span style="color:#ff6060;"><strong>\"</strong></span><span style="color:#ff40ff;"><strong>)"</strong></span>),
    AP_INIT_ITERATE(<span style="color:#ff40ff;"><strong>"AuthDigestProvider"</strong></span>, add_authn_provider, <span style="color:#ff40ff;"><strong>NULL</strong></span>, OR_AUTHCFG,
                     <span style="color:#ff40ff;"><strong>"specify the auth providers for a directory or location"</strong></span>),
    AP_INIT_ITERATE(<span style="color:#ff40ff;"><strong>"AuthDigestQop"</strong></span>, set_qop, <span style="color:#ff40ff;"><strong>NULL</strong></span>, OR_AUTHCFG,
     <span style="color:#ff40ff;"><strong>"A list of quality-of-protection options"</strong></span>),
    AP_INIT_TAKE1(<span style="color:#ff40ff;"><strong>"AuthDigestNonceLifetime"</strong></span>, set_nonce_lifetime, <span style="color:#ff40ff;"><strong>NULL</strong></span>, OR_AUTHCFG,
     <span style="color:#ff40ff;"><strong>"Maximum lifetime of the server nonce (seconds)"</strong></span>),
    AP_INIT_TAKE1(<span style="color:#ff40ff;"><strong>"AuthDigestNonceFormat"</strong></span>, set_nonce_format, <span style="color:#ff40ff;"><strong>NULL</strong></span>, OR_AUTHCFG,
     <span style="color:#ff40ff;"><strong>"The format to use when generating the server nonce"</strong></span>),
    AP_INIT_FLAG(<span style="color:#ff40ff;"><strong>"AuthDigestNcCheck"</strong></span>, set_nc_check, <span style="color:#ff40ff;"><strong>NULL</strong></span>, OR_AUTHCFG,
     <span style="color:#ff40ff;"><strong>"Whether or not to check the nonce-count sent by the client"</strong></span>),
    AP_INIT_TAKE1(<span style="color:#ff40ff;"><strong>"AuthDigestAlgorithm"</strong></span>, set_algorithm, <span style="color:#ff40ff;"><strong>NULL</strong></span>, OR_AUTHCFG,
     <span style="color:#ff40ff;"><strong>"The algorithm used for the hash calculation"</strong></span>),
    AP_INIT_ITERATE(<span style="color:#ff40ff;"><strong>"AuthDigestDomain"</strong></span>, set_uri_list, <span style="color:#ff40ff;"><strong>NULL</strong></span>, OR_AUTHCFG,
     <span style="color:#ff40ff;"><strong>"A list of URI's which belong to the same protection space as the current URI"</strong></span>),
    AP_INIT_TAKE1(<span style="color:#ff40ff;"><strong>"AuthDigestShmemSize"</strong></span>, set_shmem_size, <span style="color:#ff40ff;"><strong>NULL</strong></span>, RSRC_CONF,
     <span style="color:#ff40ff;"><strong>"The amount of shared memory to allocate for keeping track of clients"</strong></span>),
    {<span style="color:#ff40ff;"><strong>NULL</strong></span>}
};

<span style="color:#00ffff;"><strong>/*</strong></span>
<span style="color:#00ffff;"><strong> * client list code</strong></span>
<span style="color:#00ffff;"><strong> *</strong></span>
<span style="color:#00ffff;"><strong> * Each client is assigned a number, which is transferred in the opaque</strong></span>
<span style="color:#00ffff;"><strong> * field of the WWW-Authenticate and Authorization headers. The number</strong></span>
<span style="color:#00ffff;"><strong> * is just a simple counter which is incremented for each new client.</strong></span>
<span style="color:#00ffff;"><strong> * Clients can't forge this number because it is hashed up into the</strong></span>
<span style="color:#00ffff;"><strong> * server nonce, and that is checked.</strong></span>
<span style="color:#00ffff;"><strong> *</strong></span>
<span style="color:#00ffff;"><strong> * The clients are kept in a simple hash table, which consists of an</strong></span>
<span style="color:#00ffff;"><strong> * array of client_entry's, each with a linked list of entries hanging</strong></span>
<span style="color:#00ffff;"><strong> * off it. The client's number modulo the size of the array gives the</strong></span>
<span style="color:#00ffff;"><strong> * bucket number.</strong></span>
<span style="color:#00ffff;"><strong> *</strong></span>
<span style="color:#00ffff;"><strong> * The clients are garbage collected whenever a new client is allocated</strong></span>
<span style="color:#00ffff;"><strong> * but there is not enough space left in the shared memory segment. A</strong></span>
<span style="color:#00ffff;"><strong> * simple semi-LRU is used for this: whenever a client entry is accessed</strong></span>
<span style="color:#00ffff;"><strong> * it is moved to the beginning of the linked list in its bucket (this</strong></span>
<span style="color:#00ffff;"><strong> * also makes for faster lookups for current clients). The garbage</strong></span>
<span style="color:#00ffff;"><strong> * collecter then just removes the oldest entry (i.e. the one at the</strong></span>
<span style="color:#00ffff;"><strong> * end of the list) in each bucket.</strong></span>
<span style="color:#00ffff;"><strong> *</strong></span>
<span style="color:#00ffff;"><strong> * The main advantages of the above scheme are that it's easy to implement</strong></span>
<span style="color:#00ffff;"><strong> * and it keeps the hash table evenly balanced (i.e. same number of entries</strong></span>
<span style="color:#00ffff;"><strong> * in each bucket). The major disadvantage is that you may be throwing</strong></span>
<span style="color:#00ffff;"><strong> * entries out which are in active use. This is not tragic, as these</strong></span>
<span style="color:#00ffff;"><strong> * clients will just be sent a new client id (opaque field) and nonce</strong></span>
<span style="color:#00ffff;"><strong> * with a stale=true (i.e. it will just look like the nonce expired,</strong></span>
<span style="color:#00ffff;"><strong> * thereby forcing an extra round trip). If the shared memory segment</strong></span>
<span style="color:#00ffff;"><strong> * has enough headroom over the current client set size then this should</strong></span>
<span style="color:#00ffff;"><strong> * not occur too often.</strong></span>
<span style="color:#00ffff;"><strong> *</strong></span>
<span style="color:#00ffff;"><strong> * To help tune the size of the shared memory segment (and see if the</strong></span>
<span style="color:#00ffff;"><strong> * above algorithm is really sufficient) a set of counters is kept</strong></span>
<span style="color:#00ffff;"><strong> * indicating the number of clients held, the number of garbage collected</strong></span>
<span style="color:#00ffff;"><strong> * clients, and the number of erroneously purged clients. These are printed</strong></span>
<span style="color:#00ffff;"><strong> * out at each garbage collection run. Note that access to the counters is</strong></span>
<span style="color:#00ffff;"><strong> * not synchronized because they are just indicaters, and whether they are</strong></span>
<span style="color:#00ffff;"><strong> * off by a few doesn't matter; and for the same reason no attempt is made</strong></span>
<span style="color:#00ffff;"><strong> * to guarantee the num_renewed is correct in the face of clients spoofing</strong></span>
<span style="color:#00ffff;"><strong> * the opaque field.</strong></span>
<span style="color:#00ffff;"><strong> </strong></span><span style="color:#00ffff;"><strong>*/</strong></span>

<span style="color:#00ffff;"><strong>/*</strong></span>
<span style="color:#00ffff;"><strong> * Get the client given its client number (the key). Returns the entry,</strong></span>
<span style="color:#00ffff;"><strong> * or NULL if it's not found.</strong></span>
<span style="color:#00ffff;"><strong> *</strong></span>
<span style="color:#00ffff;"><strong> * Access to the list itself is synchronized via locks. However, access</strong></span>
<span style="color:#00ffff;"><strong> * to the entry returned by get_client() is NOT synchronized. This means</strong></span>
<span style="color:#00ffff;"><strong> * that there are potentially problems if a client uses multiple,</strong></span>
<span style="color:#00ffff;"><strong> * simultaneous connections to access url's within the same protection</strong></span>
<span style="color:#00ffff;"><strong> * space. However, these problems are not new: when using multiple</strong></span>
<span style="color:#00ffff;"><strong> * connections you have no guarantee of the order the requests are</strong></span>
<span style="color:#00ffff;"><strong> * processed anyway, so you have problems with the nonce-count and</strong></span>
<span style="color:#00ffff;"><strong> * one-time nonces anyway.</strong></span>
<span style="color:#00ffff;"><strong> </strong></span><span style="color:#00ffff;"><strong>*/</strong></span></pre>
</blockquote>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/htpasswd.wordpress.com/22/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/htpasswd.wordpress.com/22/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/htpasswd.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/htpasswd.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/htpasswd.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/htpasswd.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/htpasswd.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/htpasswd.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/htpasswd.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/htpasswd.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/htpasswd.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/htpasswd.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=htpasswd.wordpress.com&blog=3628479&post=22&subd=htpasswd&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://htpasswd.wordpress.com/2008/08/12/some-authdigest-configuration-directives/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b19170af73f1c1a6ab1f4be91530bbb3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">AskApache</media:title>
		</media:content>
	</item>
		<item>
		<title>SSL Encrypted Logins for WordPress</title>
		<link>http://htpasswd.wordpress.com/2008/07/16/ssl-encrypted-logins-for-wordpress/</link>
		<comments>http://htpasswd.wordpress.com/2008/07/16/ssl-encrypted-logins-for-wordpress/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 17:58:24 +0000</pubDate>
		<dc:creator>Fastserve</dc:creator>
				<category><![CDATA[encryption]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[htpasswd]]></category>
		<category><![CDATA[cookies]]></category>
		<category><![CDATA[login]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://htpasswd.wordpress.com/?p=20</guid>
		<description><![CDATA[Awesome post by Ryan on the changes in the usage of SSL and cookies in WordPress. .

If you want to force logins to be over SSL to prevent usernames and passwords from being sent in the clear while letting your users have the choice of using http or https when visiting the admin, add this to your wp-config.php:

    define(’FORCE_SSL_LOGIN’, true);<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=htpasswd.wordpress.com&blog=3628479&post=20&subd=htpasswd&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><div class="posttitle">Awesome post by Ryan on the changes in the usage of SSL and cookies in WordPress.  As we&#8217;ll see soon, this will effect your htpasswd and htaccess setups if you are using SSL.</div>
<div class="posttitle"></div>
<div class="posttitle"></div>
<div class="posttitle">
<blockquote>
<h2><a title="Permanent Link to SSL and Cookies in WordPress 2.6" rel="bookmark" href="http://boren.nu/archives/2008/07/14/ssl-and-cookies-in-wordpress-26/">SSL and Cookies in WordPress 2.6</a></h2>
<p class="post-info">Mon Jul 14 2008 by <a title="Posts by Ryan" href="http://boren.nu/archives/author/ryan/">Ryan</a></p>
<p>If your host supports SSL, WordPress 2.6 enables you to make use of that support in a secure manner.  Enjoy, and help us make SSL support better by <a href="http://codex.wordpress.org/Reporting_Bugs">reporting any bugs you find</a>.</p></blockquote>
</div>
<p>The auth cookie, on the other hand, is delivered only for the admin area and can be used to make changes to the blog.  If you login via https, your auth cookie will be delivered only for SSL sessions.  If you login over https and later visit your admin via regular http, you will have to log in again to get a non-SSL auth cookie. By default, you have the option of visiting your admin either via http or https.  If you want to force all admin sessions to be over https, add the following to your wp-config.php:</p>
<blockquote><p>define(’FORCE_SSL_ADMIN’, true);</p></blockquote>
<p>This will prevent non-SSL logins to your blog. This means you will never have an auth cookie delivered in the clear.  If you want to force logins to be over SSL to prevent usernames and passwords from being sent in the clear while letting your users have the choice of using http or https when visiting the admin, add this to your wp-config.php:</p>
<blockquote><p>define(’FORCE_SSL_LOGIN’, true);</p></blockquote>
<p>This does not force all cookies to be delivered over SSL.  The user has a choice between the greater security of an https session and the greater speed of an http session.  If you want to remove this choice and force secure https sessions, FORCE_SSL_ADMIN is for you.</p>
<p>With these new cookies comes new secret keys for signing them.  Recall that WordPress 2.5 <a href="http://boren.nu/archives/2008/04/24/cookie-security-in-wordpress-25/">introduced SECRET_KEY</a> as a means of adding a little extra security to cookie signing.  If you intend to use the SSL support in 2.6, you will probably want to define the secret key for the secure cookie.  If you don’t intend to use SSL, you can stick with your existing SECRET_KEY.  Here’s an example of what the new secret key definitions look like:</p>
<blockquote><p>define(’AUTH_KEY’, ‘put your unique phrase here’);<br />
define(’SECURE_AUTH_KEY’, ‘put your unique phrase here’);<br />
define(’LOGGED_IN_KEY’, ‘put your unique phrase here’);</p></blockquote>
<p>You should change those sample phrases to unique, preferably random phrases.  Each key should have a different phrase.  Visit <a href="http://api.wordpress.org/secret-key/1.1/">http://api.wordpress.org/secret-key/1.1/</a> to get a set of random keys that you can cut-and-paste into your wp-config.php.  Once again, if you don’t intend to use SSL, you can stick with the SECRET_KEY you already have.</p>
<p>This should be mostly transparent to plugins and themes. I say mostly because there are some themes that send POST and AJAX requests to files within the themes directory.  The auth cookies are delivered only to the wp-admin and wp-content/plugins directories, so files directly loaded from wp-content/themes will not see the cookies.  Themes should send their POST and AJAX requests to the admin-post.php or admin-ajax.php files.  I’ve added a short article to the codex on <a href="http://codex.wordpress.org/Handling_POST_and_AJAX_Requests">how themes and plugins should handle their POST and AJAX requests</a>.</p>
<p>Plugins might also create links that are not properly prefixed with ‘https’.  Any content loaded into a secure page must come via an https link to avoid warnings from the browser about the content being only partially encrypted.  WordPress 2.6 introduces five new functions that take care of using the proper protocol when loading CSS, JS, and other files into an SSL-encrypted admin page.  They are site_url(), admin_url(), includes_ur(), plugins_url(), and content_url().  Each accepts an optional path relative to the site, admin, include, plugins, and content urls, respectively.  For example, to link to wp-content/plugins/foo/foo.php use plugins_url(’foo/foo.php’).  Plugins that load CSS and JS via relative links do not need to use these functions.  Relative links will automatically use the proper protocol.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/htpasswd.wordpress.com/20/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/htpasswd.wordpress.com/20/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/htpasswd.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/htpasswd.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/htpasswd.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/htpasswd.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/htpasswd.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/htpasswd.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/htpasswd.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/htpasswd.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/htpasswd.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/htpasswd.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=htpasswd.wordpress.com&blog=3628479&post=20&subd=htpasswd&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://htpasswd.wordpress.com/2008/07/16/ssl-encrypted-logins-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b19170af73f1c1a6ab1f4be91530bbb3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">AskApache</media:title>
		</media:content>
	</item>
		<item>
		<title>Distributing free software is an opportunity</title>
		<link>http://htpasswd.wordpress.com/2008/06/20/distributing-free-software-is-an-opportunity/</link>
		<comments>http://htpasswd.wordpress.com/2008/06/20/distributing-free-software-is-an-opportunity/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 15:50:25 +0000</pubDate>
		<dc:creator>Fastserve</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://htpasswd.wordpress.com/?p=19</guid>
		<description><![CDATA[Selling Free Software
<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=htpasswd.wordpress.com&blog=3628479&post=19&subd=htpasswd&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><h2>Selling Free Software</h2>
<p><!-- This document uses XHTML 1.0 Strict, but may be served as --><!-- text/html.  Please ensure that markup style considers --><!-- appendex C of the XHTML 1.0 standard. See validator.w3.org. --><!-- Please ensure links are consistent with Apache's MultiView. --><!-- Change include statements to be consistent with the relevant --> <!-- language, where necessary. -->Many people believe that the spirit of the GNU project is that you should not charge money for distributing copies of software, or that you should charge as little as possible — just enough to cover the cost.</p>
<p>Actually we encourage people who redistribute <a href="http://www.gnu.org/philosophy/free-sw.html">free software</a> to charge as much as they wish or can.  If this seems surprising to you, please read on.</p>
<p>The word “free” has two legitimate general meanings; it can refer either to freedom or to price.  When we speak of “free software”, we&#8217;re talking about freedom, not price.  (Think of “free speech”, not “free beer”.)  Specifically, it means that a user is free to run the program, change the program, and redistribute the program with or without changes.</p>
<p>Free programs are sometimes distributed gratis, and sometimes for a substantial price.  Often the same program is available in both ways from different places.  The program is free regardless of the price, because users have freedom in using it.</p>
<p><a href="http://www.gnu.org/philosophy/categories.html#ProprietarySoftware">Non-free programs</a> are usually sold for a high price, but sometimes a store will give you a copy at no charge.  That doesn&#8217;t make it free software, though. Price or no price, the program is non-free because users don&#8217;t have freedom.</p>
<p>Since free software is not a matter of price, a low price isn&#8217;t more free, or closer to free.  So if you are redistributing copies of free software, you might as well charge a substantial fee and <em>make some money</em>.  Redistributing free software is a good and legitimate activity; if you do it, you might as well make a profit from it.</p>
<p>Free software is a community project, and everyone who depends on it ought to look for ways to contribute to building the community.  For a distributor, the way to do this is to give a part of the profit to the <a href="http://www.gnu.org/fsf/fsf.html">Free Software Foundation</a> or some other free software development project.  By funding development, you can advance the world of free software.</p>
<p><strong>Distributing free software is an opportunity to raise funds for development.  Don&#8217;t waste it!</strong></p>
<p>In order to contribute funds, you need to have some extra.  If you charge too low a fee, you won&#8217;t have anything to spare to support development.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/htpasswd.wordpress.com/19/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/htpasswd.wordpress.com/19/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/htpasswd.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/htpasswd.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/htpasswd.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/htpasswd.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/htpasswd.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/htpasswd.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/htpasswd.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/htpasswd.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/htpasswd.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/htpasswd.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=htpasswd.wordpress.com&blog=3628479&post=19&subd=htpasswd&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://htpasswd.wordpress.com/2008/06/20/distributing-free-software-is-an-opportunity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b19170af73f1c1a6ab1f4be91530bbb3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">AskApache</media:title>
		</media:content>
	</item>
	</channel>
</rss>