Search In Site

22 June, 2013

Html : frames


A frame is a distinct section in a browser window. This section can be independent of the other sections in the window, and if we allow it, it can be resized. Like just about everything we've covered so far, making a web site with frames is easy. In fact, many people think creating tables are harder!
Creating frames is just a little different from making normal web pages. To make a frame, we need to create a frame layout page that links to the divisions of the page. On the layout page we put the <FRAMESET> and <FRAME> tags that tell the browser how to display the frames.
The <FRAMESET> tag has 3 attributes, ROWS, COLS and FRAMEBORDER. The ROWS attribute tells the browser "I (number) rows of frames, this size" by putting it into the <FRAMESET> tag like this: <FRAMESET ROWS="33%, 33%, 34%">. This would put 3 different frames on the page, separated like rows in a table. The COLS attribute works similarly, except it divides the page into columns instead of rows.
The FRAMEBORDER attribute specifies whether you want your frame to have borders or not. This attribute's use is a bit restricted though: you can only pass it either 0 or 1 as an argument. FRAMEBORDER="0" eliminates borders, and FRAMEBORDER="1" turns borders on.
So far, our bare-bones frame layout page looks like this:
<HTML>
<HEAD>
<TITLE>Welcome to Little v's frame demo!</TITLE>
</HEAD>

<FRAMESET COLS="40%, 60%">
</FRAMESET>

</HTML>
Notice anything missing? Yep, the BODY! However, this is justified: since this is just a frame layout and not an actual page with information, it really does'nt have a body. Hmm, that did'nt sound too healthy. Oh well, now for the business of displaying our actual frames.
To define the content of the two frames that we just created, we need to use the <FRAME> tag. The FRAME tag has a few attributes that give us extensive control of our frames. The most important attribute is the SRC attribute. This attribute gives the location of the HTML file to be displayed in the frame. Basically, <FRAME SRC> works for frames the same as <IMG SRC> does for images.
After the mandatory SRC tag, there are a few more attributes to the <FRAME> tag that we can use to give us control over how our frame is displayed. We can toggle the borders on or off in our individual frames by putting the FRAMEBORDER attribute in the <FRAME> tag. We can change the margins in our frame with the MARGINHEIGHT and MARGINWIDTH attributes. The proper way to set a margin is like this:
<FRAME MARGINWIDTH="x">
Where x is any number. What is we want our frame to be fixed so the browser cannot resize it? We could tape up the browser's keyboard, or we could use the NORESIZE attribute. This attribute takes no arguments, and when placed in the <FRAME> tag, it locks out the resize option in the browser. If we want to get really specific as to the display of our frame, we can use the SCROLLING attribute to set whether the browser shows a scrollbar. We can either pass SCROLLING a yes, no, or an auto (sorry, no maybe's!). Auto allows the viewer's browser to determine whether or not it needs a scrollbar. The default is auto.
When we apply what we just learned and update our "bare-bones" frame layout, the code looks like this:
<HTML>
<HEAD>
<TITLE>Welcome to Little v's frame demo!</TITLE>
</HEAD>

<FRAMESET COLS="40%, 60%" FRAMEBORDER="0">
<FRAME SRC="leftframe.html"> <FRAME SRC="rightframe.html"> </FRAMESET>

</HEAD>
</HTML>

Now if we crank out one page for the left frame and one for the right frame, we'll have something like this.
But what about if our casual browser is surfing with frames off, or even worse, what happens if his browser does'nt even support frames? Always ready with a work-around, HTML offers us the <NOFRAMES> tag. It works like this: anything between the <NOFRAMES> and </NOFRAMES> tags on the frame format page will be shown to browsers that cannot display frames, or have frames turned off. A clever use for this tag would be to add a message with a link to the main page of your site, so these visitors can navigate your site without use of the frames. Something along these lines would work:
<NOFRAMES>
I see you ca'nt see my frames, but you can still navigate my site the old fashioned way! <A HREF="mainpage.html">Click Here!</A>
</NOFRAMES>

Html : Tables

HTML is all about format. HTML is all about format. Just the other day, a friend asked me "Hey little v, is there a way to format a part of my page to look like it's a spreadsheet?" I told him "Heck yeah! Just make a table!".
Here's a little description of tables from a great book, HTML 4 Unleashed by Rick Darnell: "Tables are kind of like lists. We're introduced to them at an early age through the mirth of games such as tic-tac-toe and checkers. Later in life, someone forces us to use a spreadsheet, and suddenly tables are'nt so fun anymore...".
Tables were put in to HTML for the exact reason my friend wanted to use them for - spreadsheets and database information. Later, their features were expanded by developers to include attributes that allow much more than just that. Let's get started with creating a basic table, then get funky with some more advanced techniques!
So how do we start our own HTML spreadsheet? We use the <TABLE> tag!
The <TABLE> tag creates a blank table. It tells the browser "This is the start of a table". There is only one attribute to the <TABLE> tag that we need to worry now: the BORDER attribute. The BORDER attribute tells the browser how wide a border you want around your table data. If you do'nt include the the BORDER attribute into your <TABLE> tag, the browser automatically sets it to BORDER=0, which means there will be no border around your table data.
So our basic table with no data looks like this:
<TABLE BORDER=1>
</TABLE>

What do we have to do to get some data in there? Add cells of course! A cell is a rectangular part of a table that can hold text, HTML tags, and even images! Those of us who use spreadsheets are already familiar with cells. When we make rows and columns in our table, we divide our table into many cells.
To create a row in a table, we use the <TR>, or table row tag. To divide our row into columns, we use the <TD>, or table data tag. You place your cells information after the table data tag.
The HTML for a table with 3 rows and 3 columns is like this:
<TABLE BORDER=1>
<TR><TD>Row 1, Col 1 <TD>Row 1, Col 2 <TD>Row 3, Col 3</TR>
<TR><TD>Row 2, Col 1 <TD>Row 2, Col 2 <TD>Row 3, Col 3</TR>
<TR><TD>Row 3, Col 1 <TD>Row 2, Col 2 <TD>Row 3, Col 3</TR>
</TABLE>

And the table comes out looking like this:
Row 1, Col 1Row 1, Col 2Row 3, Col 3
Row 2, Col 1Row 2, Col 2Row 3, Col 3
Row 3, Col 1Row 2, Col 2Row 3, Col 3

Need a little explanation for your table? Maybe a title for your column? Try a table header! The <TH> tag is used to put a bold header (or headers!) on the top row of your table. It's used like this:
<TABLE BORDER=1>
<TR><TH>9 Cell Table</TR>
<TR><TD>Row 1, Col 1 <TD>Row 1, Col 2 <TD>Row 3, Col 3</TR>
<TR><TD>Row 2, Col 1 <TD>Row 2, Col 2 <TD>Row 3, Col 3</TR>
<TR><TD>Row 3, Col 1 <TD>Row 2, Col 2 <TD>Row 3, Col 3</TR>
</TABLE>

And your browser shows it like so:
9 Cell Table
Row 1, Col 1Row 1, Col 2Row 3, Col 3
Row 2, Col 1Row 2, Col 2Row 3, Col 3
Row 3, Col 1Row 2, Col 2Row 3, Col 3

We can change our table by using a variety of tags. Formatting a table combines parts of page format with image formatting.
Since we already know how to handle size in images, we can directly apply our knowledge to making tables. In our <TABLE> tag, we can add the WIDTH and HEIGHT attributes, just like in an image. For example, if we wanted a table 300 pixels wide and 300 pixels high, we'd code its <TABLE> tag like this:
<TABLE WIDTH="300" HEIGHT="300">
We can also change the height and width of the individual cells by adding the HEIGHT and WIDTH attributes to the <TD> tags. Theres one other way to change our cells size though - we do this by passing the percentage of the table we want our cell to take up. For example, <TD HEIGHT="50%" WIDTH="50%"> makes that cell take up 50 percent of the tables total height and 50 percent of the tables total width.
Following this trend of similarities between images and tables, we can also align data in table in a similar fashion as an image. We just need to add the ALIGN or the VALIGN (vertical align) attributes to our <TR> tags. ALIGN can align our row to the "left", "right", or "center" and VALIGN can align our row to the "top", "middle" or "bottom". If we wanted a cell take up what would normally be a few different cells, we use the COLSPAN attribute. COLSPAN takes as an argument the number of cells that this cell should take up. If I wanted to get a little crazy, I might align a row like this:
<TD ALIGN="right" VALIGN="bottom" COLSPAN="3">
And this would make a cell spanning 3 normal cells, and align our text in that cell to the bottom right portion of our row. How can COLSPAN and ALIGN improve our table? Take a look at our new, improved table and you'll see!
9 Cell Table
Row 1, Col 1Row 1, Col 2Row 3, Col 3
Row 2, Col 1Row 2, Col 2Row 3, Col 3
Row 3, Col 1Row 2, Col 2Row 3, Col 3

As you can see, centering our top heading made our table look just a little better.
Does it get any better than this? Of course! We can give our whole table - or even individual rows or cells - their own background color. Can you guess how (heres a hint - remember how formatting a table is like formatting a page)? If you guessed "Use the BGCOLOR or BACKGROUND attributes" you're right! Do'nt be discouraged - you just learned how! These attributes are just inserted exactly as they would be in the <BODY> tag. So if i wanted the background of my sample table to be blue, and the top row to be red, I would just change the code to look like this:
<TABLE BGCOLOR="blue" BORDER=1>
<TR BGCOLOR="red" ALIGN="center"><TH COLSPAN="3">9 Cell Table</TR>
<TR><TD>Row 1, Col 1 <TD>Row 1, Col 2 <TD>Row 3, Col 3</TR>
<TR><TD>Row 2, Col 1 <TD>Row 2, Col 2 <TD>Row 3, Col 3</TR>
<TR><TD>Row 3, Col 1 <TD>Row 2, Col 2 <TD>Row 3, Col 3</TR>
</TABLE>

And if we take another look it comes out like this:
9 Cell Table
Row 1, Col 1Row 1, Col 2Row 3, Col 3
Row 2, Col 1Row 2, Col 2Row 3, Col 3
Row 3, Col 1Row 2, Col 2Row 3, Col 3

Notice that space is a little tight in those cells? Looks like we gotta add a little space between the borders and the text. How is this done you ask? We need to set the CELLSPACING and CELLPADDING in our table! The CELLSPACING attribute sets the amount of space between cells in our table, in pixels. The CELLPADDING attribute is used to set the amount of space between the cell borders and the cell data. If we add CELLPADDING="0" to our table, it makes the table's data align as closely as possible to the borders. Got it? Let's update our table!
<TABLE BGCOLOR="blue" BORDER=1 CELLSPACING=5 CELLPADDING=10>
<TR BGCOLOR="red" ALIGN="center"><TH COLSPAN="3">9 Cell Table</TR>
<TR><TD>Row 1, Col 1 <TD>Row 1, Col 2 <TD>Row 3, Col 3</TR>
<TR><TD>Row 2, Col 1 <TD>Row 2, Col 2 <TD>Row 3, Col 3</TR>
<TR><TD>Row 3, Col 1 <TD>Row 2, Col 2 <TD>Row 3, Col 3</TR>
</TABLE>

Yields this result:
9 Cell Table
Row 1, Col 1Row 1, Col 2Row 3, Col 3
Row 2, Col 1Row 2, Col 2Row 3, Col 3
Row 3, Col 1Row 2, Col 2Row 3, Col 3

Let's say we want our table to have a little caption that identifies what it is. We can do this by adding a <CAPTION> to our table. It's use is pretty simple, so i'll just show you how it's done.
<TABLE BGCOLOR="blue" BORDER=1 CELLSPACING=5 CELLPADDING=10>
<CAPTION>A sample table</CAPTION> <TR BGCOLOR="red" ALIGN="center"><TH COLSPAN="3">9 Cell Table</TR>
<TR><TD>Row 1, Col 1 <TD>Row 1, Col 2 <TD>Row 3, Col 3</TR>
<TR><TD>Row 2, Col 1 <TD>Row 2, Col 2 <TD>Row 3, Col 3</TR>
<TR><TD>Row 3, Col 1 <TD>Row 2, Col 2 <TD>Row 3, Col 3</TR>
</TABLE>

Makes our table look like so:
A sample table
9 Cell Table
Row 1, Col 1Row 1, Col 2Row 3, Col 3
Row 2, Col 1Row 2, Col 2Row 3, Col 3
Row 3, Col 1Row 2, Col 2Row 3, Col 3

Html : How To Create image maps


Any image that is subdivided into regions that point to different pages is called a Image Map. There are two ways that you can put an image map on your page: by using Client Side image maps or Server Side image maps. Client side scripting is when the coordinates for the image map is stored on an HTML page. Server side image maps store the coordinates for the image map on the page's web server. Because Client Side image map's are quicker loading and easier to understand, we will only explain how to implement Client Side image maps.
When we want to create an image map we use the <MAP> tag. The <MAP> tag, when put in the body part of our page, is our way of telling the browser "I'm going to put an image map on this page". The <MAP> tag takes one attribute: the NAME attribute. The NAME attribute gives our image map a name that we can call it with. It's just like calling a dog, you do'nt call it "dog" it's whole life, you name it something like "spot" and call it by name! Our basic <MAP> tag looks like this:
<MAP NAME="newmap">
Now let's say that I have an image that I want to use on my site as an image map, maybe one that looks something like this:

How do I make it into an imagemap? Well, there's really no physical way to change it into an image map. All that you can do is divide it into areas that link to different pages. We do this by using the <AREA> tag. The <AREA> tag takes three arguments: SHAPE, COORDS, and HREF. SHAPE is easy: it tells the browser what shape the said area is. SHAPE can be given three arguments, "rect" for rectangle areas, "circle" for areas that are circles, and "poly" for polygons that are not rectangles. So far, our <AREA> tag looks like this:
<AREA SHAPE="circle, rect or poly">
So how do we define the actual coordinates of our shape? As you've probably guessed, we use the COORDS attribute. For a rectangle, we have to pass the COORDS attibute the top left and bottom right corners of our linking area.
How do we find these coordinates? Most image editing programs, such as Paint Shop Pro (free to try, my personal favorite!) show you what coordinates you're pointing at on the image. The first coordinate is the "x" or horizontal coordinate, and the second is the "y" or vertical coordinate (just like in algebra class!). I have already opened up my image in Paint Shop Pro and collected that the top left coordinates in the rectangle area of my image (the one surrounding "Disclaimer") are 30 (the "x" coordinate), and 30 (the "y" coordinate). I also got the bottom right coordinates, 194, 69. Now that we've done the hard part (getting the coordinates) all we have to do is pass them to the COORDS attribute. In our area tag, it looks like this:
<AREA SHAPE="rect" COORDS="30,30 , 194,69">
Whew! That's the most work we've done in this whole tutorial! But we're not done yet, we still need to pass where we want this section of our image to point to.
If we want our rectangle area to point somewhere, we're going to have to use one more attribute: HREF. The HREF attribute simply takes the Hypertext Reference(also called a link) that you want to use in this area as an argument. So our complete <AREA> tag looks like this:
<AREA SHAPE="rect" COORDS="30,30 , 194,69" HREF="../disclaimer.html">
(Note: Because our Disclaimer page is in the directory above the current one, if we use relative linking we need to add a '../' before our page name.)
So far we've flagged off the rectangular portion surrounding "Disclaimer" in our image to point to the page "disclaimer.html". But what about that circular portion around "Home"? This one's a simple switch, but let's take it one attribute at a time to make sure we get it.
The SHAPE attribute's argument has to change from "rect" to "circle", since we're no longer flagging off a rectangular area and now using a circular area. To get our coordinates, we're going to have to fire up the old graphics editing program. This time there are no corners to find, so we need to get the coordinates of the center of the circle and its radius (in pixels). For those of you who did'nt take geometry in high school (shame on you!) the radius of a circle is the distance from the center of the circle to any point on the edge of the circle. Paint Shop Pro tells me that the center of my circle's coordinate's are 204, 106. It also tells me that the circle's radius is 57. Knowing this, we can change our <AREA> tag to look like this:
<AREA SHAPE="circle" COORDS="204,106 , 57" HREF="../index.html">
(Note: The "index.html" page, like the "disclaimer.html" page, is in the directory above the current one.)
You may notice that the circle and rectangle overlap a little bit. When there are overlapping area's in an image map, the area that is defined in the source HTML first is considered "on top". So if you click on the overlapping area and our rectangle was the first <AREA> tag in the source HTML, you would be taken to the Disclaimer page.
Wait just one minute! The last area in our image is a triangle? But the SHAPE attribute does'nt take "triangle" as an argument! How do we get around this? With the use of the "poly" argument of course!
The "poly" (or polygon) argument to the SHAPE attribute is used to define areas that are not rectangles or circles. In fact, you can define up to a 100 cornered polygon with the "poly" argument! The poly argument simply takes the coordinates of all the corners in the polygon, and connects them, dot to dot style. Since our lovely triangle has three corners, it has three coordinate pairs: 355,108 (top), 291,174 (bottom left) and 421,174 (bottom right). If we put them into our complete <AREA> tag, it looks like this:
<AREA SHAPE="poly" COORDS="355,108 , 291,174 , 421,174" HREF="../books.html">
Note that the browser automatically connects the last coordinate pair to the first coordinate pair to complete our polygon.
Now we have a complete image map, but what if we want the parts of our image that do'nt point anywhere yet to lead somewhere? That's where the "default" argument to the SHAPE attribute comes in. We could make "default" point somewhere, like this:
<AREA SHAPE="default" HREF="../magazines.html">
This would make the area not in the circle, rectangle or triangle point to "magazines.html" in the directory above the current one. But since I do'nt want this part of the image to point anywhere right now, I use the NOHREF attribute, which simply says "no link in this area!".
Our completed image map code looks like this:
<MAP NAME="newmap">
<AREA SHAPE="rect" COORDS="30,30 , 194,69" HREF="../disclaimer.html">
<AREA SHAPE="circle" COORDS="204,106 , 57" HREF="../main.php3">
<AREA SHAPE="poly" COORDS="355,108 , 291,174 , 421,174" HREF="../books.html">
<AREA SHAPE="default" NOHREF>
</MAP>

To put our image map on the page we use an <IMG> tag with the USEMAP attribute. The USEMAP attribute tells the browser "use this image map". In this example, we're going to pass USEMAP the map that we made and named "newmap", like this:
<IMG SRC="imagemap1.gif" USEMAP="#newmap">
Where imagemap1.gif is the name of my image. Take a look at how we had to put a "#" in front of the name of our map. This is because when you name a map, you flag it off so we can call it later. The "#" tell's the browser that we're going to be using a certain part of an html page. Knowing this, we can use image maps from other pages like this:

<IMG SRC="imagemap1.gif" USEMAP="lesson9.html#newmap">

Html : How to Add Images to page

Learn How To Add Images To Our Page In Html
Well, text is very important, but it can only take you so far. I'm sure that up until now, if anyone has seen your pages they're asking "Where are the pictures?". Yeah, I know Uncle Bob is dying to see the latest picture of you and the family on your website, so this lesson is about adding images to your pages.
Putting images on a web page is simple. It's probably even simpler than it was for you to get the certain image onto your computer! The <IMG>, or Image tag is used when we want an image on our web page. When we use <IMG>, we do'nt need to close it with a </IMG>. To tell the browser where to load this image from, we use the SRC, or source, attribute. It looks alot like this:
<IMG SRC="jussmall.gif">a

Note that we can use relative linking just like with in the <A> tag, like SRC="../jussmall.gif" if the image was in the directory above the current one, or SRC="pictures/jussmall.gif" if the image was in the pictures directory.
Because some browsers do'nt load images, and some people turn them off, we need a way to show them what this image is. The solution? The ALT attribute! ALT is an optional (but highly recommended) attribute. When a browser does'nt load an image, or when they are turned off, the text in ALT will be shown instead. In our <IMG> tag it's used a little like this:
<IMG SRC="mypic.gif" ALT="Check this out - It's a picture of me!">
Need more control over your image's positioning? Try using the ALIGN attribute in it! The ALIGN attribute can be used to put an image in the left, right, middle, top, or bottom of a page. Is this more choices than you're used to? Let me explain. If we add ALIGN="top" to our <IMG> tag, the browser will align the top of our image to the top of the current line. ALIGN="bottom" aligns the image to the bottom of the current line, and ALIGN="middle" aligns our image to the middle of the current line. Aligning our image to the left or right aligns it to the left margin, or right margin of the page. Got it? Ok, here's a little pop quiz. What will the following code do?
<IMG SRC="myimg.jpg" ALT="My image!" ALIGN="left">
If you said it adds the image myimg.jpg to the current page with alternate text "My image" and left aligns it, you're wrong! Heh heh, just a joke, you're correct ;).
All right! The image looks great but...Hey! What's this border doing around my picture? Oh yeah! We forgot about the BORDER attribute!
The BORDER attribute takes a number as an argument. This number will be the width of the border around your image. Quick, how do we get rid of the border with the BORDER attribute? Easy, we just set <IMG SRC="myimg.gif" BORDER="0">!
Yuuup, we've got an image on the page. But wait: why does the browser wait to load the image before displaying the rest of the page? Well, the browser does'nt automatically know how big your image is. You can give it this information (and make your pages load faster!) with the WIDTH and HEIGHT attributes. We give to the WIDTH and HEIGHT attributes the width and height of our image in pixels. So it looks like this:
<IMG SRC="newimg.gif" ALT="A new image" HEIGHT=120 WIDTH=200>
Another benefit of specifying the WIDTH and HEIGHT in the <IMG> tag is that you can make sure that the proper space is left for your image, even if the viewer has images turned off.
Is the space around your image a little cramped? Try adding the HSPACE and VSPACE attributes to your <IMG> tag. These attributes add horizontal and vertical spacing around your image.
Want an image for the background of your page? Try adding the BACKGROUND attribute to the <BODY> tag. It's used a little like the SRC attribute to the <IMG> tag. Here's and example:
<BODY BACKGROUND="mybackground.gif">
This would take mybackground.gif, and tile it in the background of our page. Be warned though, use the wrong background image and your viewers may be straining to see your text!
Think you're an HTML wizard? Ok hotshot, how do we make images into clickable links? Easy...surround them with an anchor tag! For example:
<A HREF="lesson9.html">
<IMG SRC="nextlesson.gif">
</A>

Html : How To Create Lists


Lists are everywhere. We post them on our refrigerators and take them to the grocery store. Lists are a very efficient way to organize information. Naturally, HTML has a few tags to help you make lists. HTML has not 1, not 2, but 3 different types of lists that you can add to your pages! They are the orderedunordered, anddefinition lists.
Ordered lists are exactly what the name implies: lists that follow a numerical order. Ordered lists begin with the <OL> tag and end with a </OL> tag. When we want to put an item into this list, we need to put a <LI>, or list item tag before that item.
Here's an example of the ordered list syntax:
What do I need from the store today?<p>
<OL>
<LI>Bread
<LI>Cheese
<LI>Milk
<LI>Butter
</OL>

And heres how it looks to our viewers:
What do I need from the store today?

  1. Bread
  2. Cheese
  3. Milk
  4. Butter
Sure thing, but what if we do'nt want our list items to be numbered? That's when we use Unordered Lists. These are also called Bulleted Lists. Bulleted lists begin with the <UL> tag, and end with the </UL> tag. They look exactly like ordered lists, except the item numbers are replaced with special characters called bullets. Here's an example of how bulleted lists are used:
The Tutorial Underground is:<p>
<UL>
<LI>Cool!
<LI>Free!
<LI>Informative!
</UL>

And here's how it would look to Joe Browser (our viewer!):
The Tutorial Underground is:

  • Cool!
  • Free!
  • Informative!
Think that's cool? Try adding the TYPE attribute to the UL tag! With the TYPE attribute, we can change the type of bullet that we want to use! The TYPE attribute takes three arguments: "disc", "square" or "circle". So our new <UL> tag with a circle bullet would look like this: <UL TYPE="circle">. The TYPE attribute can also be used in the <OL> tag to change from numbers to letters (capital[TYPE="A"] or small[TYPE="a"]), or roman numerals (uppercase[TYPE="I"] or lowercase[TYPE="i"]). If we want to make an ordered list with uppercase roman numerals, it looks like this:
<OL TYPE="I">
The <LI> tag also has an attribute: VALUE. With the VALUE attrbute, we can change the value of a list item! Take a guess, what result would the following code result in:
<OL TYPE="A">
<LI VALUE="2">Think hard now!
</OL>

If you guessed "B. Think hard now!" you're right? Why? Check out the combination of the TYPE and VALUE attributes!
Heres a little trick: we can start an ordered list with any number (or letter, if we use TYPE) with the START attribute. It looks like this:
<OL START="3">
<LI>This is item number 3! </OL>

And to our viewers at home, it looks like this:

  1. This is item number 3!
The last list that we can use is the Definition List. Definition lists are normally used when we need to define terms. The definition list starts with the <DL> tag and ends with the </DL> tag. Each term to be defined in a definition list uses the <DT> or Definition Term tag. Every definition in a definition list needs a <DD>, or I do'nt know what DD stands for :) tag in front of it. It probably looks alot like this:<DL>
<DT>HTML <DD>Hypertext Markup Language
<DT>XML <DD>eXtensible Markup Language
</DL>

Our friend Joe Browser see's it like this:

HTML
Hypertext Markup Language
XML
eXtensible Markup Language
Note that you can create really cool effects if you use the formatting tags inside of lists. It's really neat when you have Bold terms and Italic definitions (in my opinion anyway)!

Html : Working with fonts

We can control the font in HTML using, what else, the <FONT> tag! We can use the <FONT> tag to control size using the SIZE attribute. The SIZE attribute is used like this:
<FONT SIZE="x">
This text font size x.
</FONT>

Where x is a number, from 1 to 7. The size that the formatted text is depends on the viewers preference settings and screen resolution. Generally though, 1 is really small and 7 is really big. Just in case you're curious, the default font size is 3. There is also a tag called the <BASEFONT> tag, which only can take the SIZE attibute, bute is made to change the size of the text on the entire page.
We can also add color to our text using the <FONT> tag. Color is added to text using, duh, the COLOR attribute to the <FONT> tag. We use the COLOR attribute the same way as the SIZE attribute:
<FONT SIZE="4" COLOR="blue">
This is colorful text in font size 4!
</FONT>

To our page's viewers, it would look like this:
This is colorful text in font size 4!
The COLOR attribute can use these standard colors: black, white, green, red, yellow, blue, aqua, fuchsia, gray, lime, maroon, purple, navy, olive, silver or teal. What? You need more control? Then I suggest you learn the hexadecimal color codes. Hex color codes are used like this:
<FONT COLOR="#0033FF">
This text is purple.
</FONT>

For more information on Hex color codes, I suggest you try this site.
The last attribute to <FONT> we'll learn in this lesson is FACE. By defining a font's face, you can control the appearance of that font. The FACE attribute is used like this:
<FONT FACE="arial" size="5" color="blue">
This text is a stunning arial size 5 in blue!
</FONT>

To the viewer, it would look like this:
This text is a stunning arial size 5 in blue!
Yes, this is great, but there's a catch: for the viewer to see this font change he needs to have the font on his computer. How does it get there? Different computer's come with different font's installed. For example, the Arial font is used on PCs, but Macs use a similar font called Helvetica. We can get around this by asking for backup choices in our FACE attribute. This is done like this:
<FONT FACE="arial,helvetica">
This text is either Arial or Helvetica.
</FONT> This will show up as arial on computers that have arial installed, or helvetica if they do'nt have arial but do have helvetica. If they do'nt have either, the font does'nt change. However, you can specify as many back up choices as you want.

Html : How To Add links

The ability to link to other web pages is exactly what makes HTML hypertext. Hyper means outside of, and when you link to another web page, you link outside of your own page.
Linking to another page is easy. In fact, you only need to use one tag! This tag is the <A>, or anchor tag. The <A> tag uses the HREF argument to specify the site to link to. So it looks like this <A HREF="http://mylink.com">This is my link!</A>. Note the This is my link! part in between the <A> and </A>. This is the part where you enter the text that'll show up in the browser. This text is underlined in some browsers. When Joe Surfer click on this text it'll take you to the link in <A HREF>, which is http://www.mylink.com in this case.
But wait, sometimes it's easier still! Sometimes you might want to do relative linking. This is when one page on your site links to another page on the same site. So if you're in http://mysite.com/index.html and want to link to http://mysite.com/page2.html you'd simply add a relative link. The format in this case would be <A HREF="page2.html">Go to page2</A>. The browser will then look in the current directory for that page.
If you want to get a page one directory up from the current one, you simply insert a ../ before the filename of the page. For example, if you're in http://mysite.com/newstuff/main.html and need to link to http://mysite.com/index.html, this is what you'd do:
<A HREF="../index.html">Go to the index</A>. You can add as many ../'s as you want to get to progressively higher directories.

If you want a link that people can click on to send email to, you just add mailto: before your email address. So it would look like this:
<A HREF="mailto:mymail@mailaddress.com">Mail me!</A>

21 June, 2013

Html :Tags and Formatting


HTML is a language that is coded with tags. They are called tags because they tag parts of a webpage for formatting in a browser. HTML tags are very easy to spot in web page source. They are the things shown that start with a < and end with a >. Most HTML tags have an opening tag (<tag>) to start formatting text and a closing tag (</tag>) to end the formatting.
There are some HTML tags that are absolutely necessary in an HTML page. Those tags are as follows:
<HTML>' and </HTML>': Usually put at the top (<HTML>) and bottom (</HTML>) of an HTML page. This tag tells the browser that this page is an HTML page.
<HEAD> and </HEAD>: This is where information about the entire page is placed.
<TITLE> and </TITLE>: This tag needs to be put between the <HEAD> and </HEAD>. This tag gives a name for your page. The name won't be shown in the the text of the page, but rather in the top of the browser window.
<BODY> and </BODY>: This tag defines the body portion of the page. Later we will learn how to use the <BODY> tag to add background colors, text colors, and margins.
Now that we know the required tags, I'm going to put my text that 
<HTML>
<HEAD>
<TITLE>Ajy vrma's Homepage</TITLE>
</HEAD>

<BODY> This Is my Web Page!

Hi, I am Ajy vrma. I built this web page because I love HTML! I am crazy about to do something extra!
I Love programming languages.

Nice To Have With You,
!!!~!!!! Miss You Bye !!!~!!!


</BODY> </HTML> But When We Open The Above In Browser Nothing Goes Right :Lets See What Mistake we Have Done !
The <p> tag can add paragraph spacing to your page. The <BR> tag adds a single line break to your page.
These tags do not need a <p> and </p>, or <BR> and </BR>, unlike the other tags.
So now our page is coded like this:
<HTML>
<HEAD>
<TITLE>Ajy vrma's Homepage</TITLE>
</HEAD>

<BODY>
This Is my Web Page!<p>
Hi, I am Ajy vrma. I built this web page because I love HTML! I am crazy about to do something extra!<p>
I Love programming languages.<p>
Nice To Have With You,<BR>
!!!~!!!! Miss You Bye !!!~!!!
</BODY>
</HTML>

Html Tutorial : Basic,Structure and Method

Introduction
In the beginnings of the Internet, it was very hard to exchange data. So with great vision, Tim Berners-Lee created a way to connect text on the Internet through Hypertext Links (References to other text on the Internet). This was'nt a new idea, but his Hypertext Markup Language (HTML) was very popular, and caught on better than other developer's projects.

HTML was not a "Programming Language" per se, but rather a Scripting Language that marks up the page with formatting commands. Your Web Browser then reads these commands and shows the accessed page on your screen.
Due to the popularity of the Web, some programmers wrote Web Browsers that could view graphics, and a wide range of content. Thousands of people started to create web pages, which ranged from personal "homepages" to business information pages.
Today, millions of people access the web. There is now a diverse medium of content on the web. Before going on to the next lesson, I suggest that you go out and view many pages that are out there on the Web. As you are viewing them, to view the HTML that they are made of click View|Source, if you're using Microsoft Internet Explorer or View|Document Source with Netscape Navigator.

Structure and Method
I'll bet you're thinking "Structure and Method? What is this... some kinda textbook???" Well, no, in this lesson you'll be learning about the Structure of HTML and theMethod that is used to make them.

HTML is not coded with some special "HTML tool", and you do'nt even need some special program to make HTML pages, like Microsoft FrontPage (In fact, I discourage their use until you know the ins and outs of HTML code). All that you DO need is a simple text editing program like Notepad.

You're probably thinking "Wait just one second, you're telling me I can code up another Yahoo! with my puny little Notepad? Yes! That's part of the beauty of HTML! How do we do this? Keep reading!
When you make a Web page the first thing you need to do is gather your content. For our first page ever, we'll be making a informative page about ourselves.

How to Set up a Secure Anonymous FTP Site


Anonymous FTP FAQ

The following is a FAQ on setting up a secure FTP Site. FTP sites are known for much abuse by transferring illegal files. They also open many oppurtunities for intruders to gain access via misconfigured setups. And lastly many versions of ftp servers have had security holes. This FAQ is intended to clean up this abuse by allowing administrators to go through this check list of steps to make sure their FTP is correctly configured and that they are running the most current ftp daemon.

This is organized in the following fashion, I am breaking into several parts as follows: 
  1. General Description of Setting up an "Anonymous" FTP server.
  2. Setting up a chrooted Secure Anonymous FTP server.
  3. OS Specific needed information and suggestions.
  4. Where to get other FTP daemons
  5. How to Know if your Anonymous FTP Server is Secure
  6. Archie

1. General Description of Setting up an "anonymous" ftp server.

  1. Create the user ftp in /etc/passwd. Use a misc group. The user's home directory will be ~ftp where ~ftp is the root you wish anonymous users to see. Creating this user turns on anonymous ftp.Use an invalid password and user shell for better security. The entry in the passwd file should look something like:
    ftp:*:400:400:Anonymous FTP:/home/ftp:/bin/true
  2. Create the home directory ~ftp. Make the directory owned by root (NOT ftp) with the same group as ftp. Thus, owner permissions are for root and group permissions are for the anonymous users. Set the permissions for ~ftp to 555 (read, nowrite, execute).Warning: Some MAN pages recommend making the ~ftp directory owned by ftp. This is a big NO-NO, if you want any type of security on your system.
  3. Create the directory ~ftp/bin. This directory is owned by root (group e.g. wheel) with permissions 111 (noread, nowrite, execute).
  4. Copy the program ls into ~ftp/bin. ls is owned by root with permissions 111 (noread, nowrite, execute). Any other commands you put in ~ftp/bin should have the same permissions as well.
  5. Make the directory ~ftp/etc. This directory is owned by root with permissions 111.
  6. Create from scratch the files /etc/passwd and /etc/group in ~ftp/etc. These files should be mode 444. The passwd file should only contain root, daemon, uucp, and ftp. The group file must contain ftp's group. Use your /etc/passwd and /etc/group files as a template for creating passwd and group files going to ~ftp/etc. You may even change the user names in this file, they are used only for 'ls' command. So for example if all files in your ~ftp/pub/linux hierarchy will be maintained by a real user 'balon' with uid=156 you may put
    linux:*:156:120:Kazik Balon::
    in the ~ftp/etc/passwd file (regardless of his real username). Leave only these users who will own files under ftp hierarchy (e.g. root, daemon, ftp...) and definitely remove *ALL* passwords by replacing them with '*' so the entry looks like:
    root:*:0:0:Ftp maintainer::
    ftp:*:400:400: Anonymous ftp::
    For more security, you can just remove ~ftp/etc/passwd and ~ftp/etc/group (the effect is that ls -l will not show the directories' group names). Wuarchive ftp daemon (and some others) have some extensions based on the contents of the group/passwd files, so read the appropriate documentation.
  7. Make the directory ~ftp/pub. This directory is owned by you and has the same group as ftp with permissions 555. On most systems (like SunOS) you may want to make this directory 2555, ie. set-group-id, in order to create new files with the same group ownership.Files are left here for public distribution. All folders inside ~ftp/pub should have the same permissions as 555.
    Warning: Neither the home directory (~ftp) nor any directory below it should be owned by ftp! No files should be owned by ftp either. Modern ftp daemons support all kinds of useful commands, such as chmod, that allow outsiders to undo your careful permission settings. They also have configuration options like the following (WuFTP) to disable them:
    # all the following default to "yes" for everybody
    
    delete          no      guest,anonymous         # delete permission?
    
    overwrite       no      guest,anonymous         # overwrite permission?
    
    rename          no      guest,anonymous         # rename permission?
    
    chmod           no      anonymous               # chmod permission?
    
    umask           no      anonymous               # umask permission?
    
    
  8. If you wish to have a place for anonymous users to leave files, create the directory ~ftp/pub/incoming. This directory is owned by root with permissions 733. Do a 'chmod +t ~ftp/pub/incoming'. The ftp daemon will normally not allow an anonymous user to overwrite an existing file, but a normal user of the system would be able to delete anything. By setting the mode to '1733' you prevent this from happening. In wuftpd you may configure the daemon to create new files with permissions '600' owned by root or any other user. Many times, incoming directories are abused by exchanging pirated and pornographic material. Abusers often create hidden directories there for this purpose. Making the incoming directory unreadable by anonymous ftp helps to some extent. With ordinary ftp severs there is no way to prevent directories being created in incoming. The WUarchive ftp server can limit uploads to certain directories and can restrict characters used in file names like this:
    # specify the upload directory information
    
    upload  /var/spool/ftp  *       no
    
    upload  /var/spool/ftp  /incoming       yes     ftp     staff   0600    nodirs
    
    
    
    # path filters                                                                                  # path-filter...
    
    path-filter  anonymous  /etc/msgs/pathmsg  ^[-A-Za-z0-9_\.]*$  ^\.  ^-
    
    path-filter  guest      /etc/msgs/pathmsg  ^[-A-Za-z0-9_\.]*$  ^\.  ^-
    
    
    Suggestion: Create an extra file-system for your ftp-area (or at least for your incoming-area) to prevent a denial-of-service attack by filling your disk with garbage (inside your incoming directory).
    If you have wuftpd you may want to add some ftp extensions like compression/decompression 'on the fly' or creation of tar files for the directory hierarchies. Get the appropriate sources (gzip, gnutar, compress), compile them and link statically, put in the ~ftp/bin directory and edit the appropriate file containing the definitions of the allowed conversions. /usr/bin/tar is already statically-linked. You may wish to use gnu tar anyway.
    Gary Mills wrote a small program to support the following:
    To do tar and compress, he wrote a tiny program called `pipe', and statically-linked it. His /etc/ftpconversions file looks like this:
    #strip prefix:strip postfix:addon prefix:addon postfix:external command:
    
    #types:options:description
    
    :.Z:  :  :/bin/compress -d -c %s:T_REG|T_ASCII:O_UNCOMPRESS:UNCOMPRESS
    
    :-z:  :  :/bin/compress -d -c %s:T_REG|T_ASCII:O_UNCOMPRESS:UNCOMPRESS
    
    :  :  :.Z:/bin/compress -c %s:T_REG:O_COMPRESS:COMPRESS
    
    :  :  :.tar:/bin/tar cf - %s:T_REG|T_DIR:O_TAR:TAR
    
    :  :  :.tar.Z:/bin/pipe /bin/tar cf - %s | /bin/compress -c:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS
    
    :  :  :.tar:/bin/gtar -c -f - %s:T_REG|T_DIR:O_TAR:TAR
    
    :  :  :.tar.Z:/bin/gtar -c -Z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS
    
    :  :  :.tar.gz:/bin/gtar -c -z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP
    
    
    Here it is:-----------------8<-------------cut---------------
    /* pipe.c: exec two commands in a pipe */
    
    
    
    #define NULL (char *)0
    
    #define MAXA 16
    
    
    
    main(argc, argv) int argc; char *argv[]; {
    
    char *av1[MAXA], *av2[MAXA];
    
    int i, n, p[2], cpid;                                                       
    
    
    
    i = 0; n = 0;
    
    while ( ++i < argc && n < MAXA ) {
    
    if ( *argv[i] == '|' && *(argv[i]+1) == '\0' ) break;
    
    av1[n++] = argv[i];
    
    }
    
    if ( n == 0 ) uexit();
    
    av1[n] = NULL;
    
    n = 0;
    
    while ( ++i < argc && n < MAXA )
    
    av2[n++] = argv[i];
    
    if ( n == 0 ) uexit();
    
    av2[n] = NULL;
    
    if ( pipe(p) != 0 ) exit(1);
    
    if ( ( cpid = fork() ) == (-1) ) exit(1);
    
    else if ( cpid == 0 ) {
    
    (void)close(p[0]);
    
    (void)close(1);
    
    (void)dup(p[1]);
    
    (void)close(p[1]);
    
    (void)execv(av1[0], av1);
    
    _exit(127);
    
    }
    
    else {
    
    (void)close(p[1]);
    
    (void)close(0);
    
    (void)dup(p[0]);
    
    (void)close(p[0]);
    
    (void)execv(av2[0], av2);
    
    _exit(127);                                                             
    
    }
    
    /*NOTREACHED*/
    
    }
    
    uexit() {
    
    (void)write(2, "Usage: pipe  | \n", 34);
    
    exit(1);
    
    }
    
    
    -------- CUT HERE ------------
  9. Other things to do:as root:
    touch ~ftp/.rhosts
    touch ~ftp/.forward
    chmod 400 ~ftp/.rhosts
    chmod 400 ~ftp/.forward
    ie. make these files zero-length and owned by root.Due to the last /bin/mail bugs in SunOS:
    touch /usr/spool/mail/ftp; chmod 400 /usr/spool/mail/ftp
    Consider an email-alias for the ftp-admin(s) to provide an email-address for problems-reports.If you are mounting some disks from other machines (or even your own) to the ~ftp hierarchy, mount it read-only. The correct entry for the /etc/fstab (on the host with ftpd) is something like:
    other:/u1/linux /home/ftp/pub/linux nfs ro,noquota,nosuid,intr,bg 1 0
    This mounts under /home/ftp/pub/linux the disk from host 'other' with no quota, no 'suid' programs (just in case), interruptible (in case 'other' goes down) and 'bg' - so if 'other' is down when you reboot it will not stop you trying to mount /home/ftp/pub/linux all over again.

2. Setting up a chrooted Secure Anonymous ftp server.

This part was contributed by Marcus J Ranum <mjr@tis.com>
  1. Build a statically linked version of ftpd and put it in ~ftp/bin. Make sure it's owned by root.
  2. Build a statically linked version of /bin/ls if you'll need one. Put it in ~ftp/bin. If you are on a Sun, and need to build one, there's a ported version of the BSD net2 ls command for SunOs on ftp.tis.com: pub/firewalls/toolkit/patches/ls.tar.Z Make sure it's owned by root.
  3. Chown ~ftp to root and make it mode 755 THIS IS VERY IMPORTANT
  4. Set up copies of ~ftp/etc/passwd and ~ftp/etc/group just as you would normally, EXCEPT make 'ftp's home directory '/' -- make sure they are owned by root.
  5. Write a wrapper to kick ftpd off and install it in /etc/inetd.conf The wrapper should look something like: (assuming ~ftp = /var/ftp)
    main()
    
    {
    
    if(chdir("/var/ftp")) {
    
    	perror("chdir /var/ftp");
    
    	exit(1);
    
    }
    
    if(chroot("/var/ftp")) {
    
    	perror("chroot /var/ftp");
    
    	exit(1);
    
    }
    
    /* optional: seteuid(FTPUID); */
    
    execl("/bin/ftpd","ftpd","-l",(char *)0);
    
    perror("exec /bin/ftpd");
    
    exit(1);
    
    }
    
    
    Options:You can use 'netacl' from the toolkit or tcp_wrappers to achieve the same effect.
    We use 'netacl' to switch so that a few machines that connect to the FTP service *don't* get chrooted first. This makes transferring files a bit less painful.
    You may also wish to take your ftpd sources and find all the places where it calls seteuid() and remove them, then have the wrapper do a setuid(ftp) right before the exec. This means that if someone knows a hole that makes them "root" they still won't be. Relax and imagine how frustrated they will be.
    If you're hacking ftpd sources, I suggest you turn off a bunch of the options in ftpcmd.y by unsetting the "implemented" flag in ftpcmd.y. This is only practical if your FTP area is read-only.
  6. As usual, make a pass through the FTP area and make sure that the files are in correct modes and that there's nothing else in there that can be executed.
  7. Note, now, that your FTP area's /etc/passwd is totally separated from your real /etc/passwd. This has advantages and disadvantages.
  8. Some stuff may break, like syslog, since there is no /dev/log. Either build a version of ftpd with a UDP-based syslog() routine or run a second syslogd based on the BSD Net2 code, that maintains a unix-domain socket named ~ftp/dev/log with the -p flag.REMEMBER:
    If there is a hole in your ftpd that lets someone get "root" access they can do you some damage even chrooted. It's just lots harder. If you're willing to hack some code, making the ftpd run without permissions is a really good thing. The correct operation of your hacked ftpd can be verified by connecting to it and (while it's still at the user prompt) do a ps-axu and verify that it's not running as root.

3. OS Specific needed information and suggestions.

These machines may need dev/tcp:

[dev/tcp]

These ftpd implementations may require a ~ftp/dev/tcp in order for anonymous ftp to work.You have to create a character special device with the appropriate major and minor device numbers. The appropriate major and minor numbers of ~ftp/dev/tcp are what the major and minor numbers of /dev/tcp are.
The ~ftp/dev is a directory and ~ftp/dev/tcp is a character special device. Make them owned and grouped by root. Permissions for ~ftp/dev is root read/write/exec and other & group read and exec. The permissions for ~ftp/dev/tcp is root read/write, other & group read.

HPUX

[Logging] If you're using HP's native ftpd, the line in /etc/inetd.conf should execute ftpd -l, which does extra logging.

Solaris 2.x

[Script] Solaris' man page contains a script for installing anonymous ftpd which saves time. You may still want to check over your anonymous ftpd for vulnerabilities.Command for reading the man page is:
$ man ftpd

SunOS

[Libraries] To set up SunOS to use its shared dynamic libraries, follow these steps:
  1. Create the directory ~ftp/usr. This directory is owned by root with permissions 555.
  2. Create the directory ~ftp/usr/lib. This directory is owned by root with permissions 555.
  3. Copy the runtime loader ld.so into ~ftp/usr/lib for use by ls. ld.so is owned by root with permissions 555.
  4. Copy the latest version of the shared C library, libc.so.* into ~ftp/usr/lib for use by ls.libc.so.* is owned by root with permissions 555.
    Note: 4.1.2(or above) users: you also need to copy /usr/lib/libdl.so.* to ~ftp/lib.
  5. Create the directory ~ftp/dev. This directory is owned by root with permissions 111.
  6. ~ftp/dev/zero is needed by the runtime loader. Move into the directory ~ftp/dev and create it with the command:
    mknod zero c 3 12
    chown ~ftp/dev/zero to root. Make sure it's readable.Warning: For novices: Don't try to copy /dev/zero to ~ftp/dev/zero! This is an endless file of zeroes and it will completely fill your filesystem!
  7. If you want to have the local time showing when people connect, create the directory ~ftp/usr/share/lib/zoneinfo and copy /usr/share/lib/zoneinfo/localtime
  8. If you are bothered by the need for copying your libraries so that you can use Sun's 'ls', which is dynamically linked, you can try to get a statically linked copy of 'ls' instead. The CD-ROM that contains Sun's OS has a statically-linked version of ls. In this case, you can dispense with steps #6-8.Statically linked versions may be available from the following sources:
    If you want a statically linked "ls" get the GNU fileutils off a archive site near you and statically link it.
    [Logging] Sun's standard ftpd logs *all* password information. To correct it, install patch:
    101640-03       SunOS 4.1.3: in.ftpd logs password info when -d option is
    
    used.   
    
    
    In /etc/inetd.conf find the line that starts with "ftp". At the end of that line, it should read "in.ftpd". Change that to "in.ftpd -dl". In /etc/syslog.conf, add a line that looks like:
                           
    
    daemon.*	               			/var/adm/daemonlog
    
    
    The information can be separated (or like SunOs4.1.1 does not recognize daemon.* so it requires the following form), such as:
    daemon.info                                    /var/adm/daemon.info
    
    daemon.debug                                   /var/adm/daemon.debug
    
    daemon.err                                     /var/adm/daemon.err
    
    
    Note that the whitespace between the two columns must include at least one TAB character, not just spaces, or it won't work. Of course your log file could be anything you want. Then, create the logfile (touch /var/adm/daemonlog should do). Finally, restart inetd and syslogd, either individually, or by rebooting the system. You should be good to go. If you do not install the patch, make sure the log file is owned by root and mode 600, as the ftp daemon will log *everything*, including users' passwords.Warning: You want to make all logs root only readable for security reasons If a user mistypes his password for his username, it could be compromised if anyone can read the log files.

4. Where to get other FTP daemons

  • Wuarchive FTP 2.4- A secure FTP daemon that allows improved access-control, logging, pre-login banners, and is very configurable:Can be ftp'd from ftp.uu.net in "/networking/ftp/wuarchive-ftpd" directory. Be certain to verify the checksum information to confirm that you have retrieved a valid copy. [Warning: Older versions of Wu-FTP are extremely insecure and in some cases have been trojaned.]
                            BSD        SVR4         
    
         File               Checksum   Checksum    MD5 Digital Signature
    
         -----------------  --------   ---------   --------------------------------
    
         wu-ftpd-2.4.tar.Z  38213  181  20337 362  cdcb237b71082fa23706429134d8c32e
    
         patch_2.3-2.4.Z    09291    8  51092  16  5558a04d9da7cdb1113b158aff89be8f
    
    
  • For DECWRL ftpd, sites can obtain version 5.93 via anonymous FTP from gatekeeper.dec.com in the "/pub/misc/vixie" directory.
                            BSD        SVR4         
    
         File               Checksum   Checksum    MD5 Digital Signature
    
         -----------------  --------   --------- --------------------------------
    
         ftpd.tar.gz        38443  60  1710 119  ae624eb607b4ee90e318b857e6573500
    
    
  • For BSDI systems, patch 005 should be applied to version 1.1 of the BSD/386 software. You can obtain the patch file via anonymous FTP from ftp.bsdi.com in the "/bsdi/patches-1.1" directory.
                            BSD        SVR4         
    
         File               Checksum   Checksum    MD5 Digital Signature
    
         -----------------  --------   ---------   --------------------------------
    
         BU110-005          35337 272  54935 543   1f454d4d9d3e1397d1eff0432bd383cf
    
    
    
    
  • Public Domain Sources:
    ftp.uu.net ~ftp/systems/unix/bsd-sources/libexec/ftpd
    gatekeeper.dec.com ~ftp/pub/DEC/gwtools/ftpd.tar.Z

5. How to Know if your Anonymous FTP Server is Secure

This section is intended for the administrator to go down a small check list of things to make sure his server is not easily compromised.
  1. Check to make sure your ftp server does not have SITE EXEC command by telneting to port 21 and typing SITE EXEC. If your ftp daemon has SITE EXEC make sure it is the most current version (ie, Wu-FTP 2.4). In older versions this allows anyone to gain shell via port 21.
  2. Check to make sure no one can log in and make files or directories in the main directory. If anyone can log in as anonymous FTP and make files such as .rhosts and .forward, instant access is granted to any intruder.
  3. Check to make sure the main directory is NOT owned by ftp. If it is owned by FTP, an intruder could SITE CHMOD 777 the main directory and then plant files to give him instant access. SITE CHMOD command should be removed because anonymous users do not need any extra priviledges.
  4. Check to make sure NO files or directories are owned by ftp. If they are, it is possible an intruder could replace them with his own trojan versions.
  5. There were several bugs in old daemons, so it is very important to make sure you are running the most current ftp daemons.

    6. Archie

    Searches FTP sites for programs. Login into these sites as archie or use client software for faster access. To get your own anonymous site added to Archie's search list, e-mail archie-updates@bunyip.com.
        archie.ac.il               132.65.20.254    (Israel server)
    
        archie.ans.net             147.225.1.10     (ANS server, NY (USA))
    
        archie.au                  139.130.4.6      (Australian Server)
    
        archie.doc.ic.ac.uk        146.169.11.3     (United Kingdom Server)
    
        archie.edvz.uni-linz.ac.at 140.78.3.8       (Austrian Server)
    
        archie.funet.fi            128.214.6.102    (Finnish Server)
    
        archie.internic.net        198.49.45.10     (AT&T server, NY (USA))
    
        archie.kr                  128.134.1.1      (Korean Server)
    
        archie.kuis.kyoto-u.ac.jp  130.54.20.1      (Japanese Server)
    
        archie.luth.se             130.240.18.4     (Swedish Server)
    
        archie.ncu.edu.tw          140.115.19.24    (Taiwanese server)
    
        archie.nz                  130.195.9.4      (New Zealand server)
    
        archie.rediris.es          130.206.1.2      (Spanish Server)
    
        archie.rutgers.edu         128.6.18.15      (Rutgers University (USA))
    
        archie.sogang.ac.kr        163.239.1.11     (Korean Server)
    
        archie.sura.net            128.167.254.195  (SURAnet server MD (USA))
    
        archie.sura.net(1526)      128.167.254.195  (SURAnet alt. MD (USA))
    
        archie.switch.ch           130.59.1.40      (Swiss Server)
    
        archie.th-darmstadt.de     130.83.22.60     (German Server)
    
        archie.unipi.it            131.114.21.10    (Italian Server)
    
        archie.univie.ac.at        131.130.1.23     (Austrian Server)
    
        archie.unl.edu             129.93.1.14      (U. of Nebraska, Lincoln (USA))
    
        archie.univ-rennes1.fr                      (French Server)
    
        archie.uqam.ca             132.208.250.10   (Canadian Server)
    
        archie.wide.ad.jp          133.4.3.6        (Japanese Server)
    
    

 
Twitter Bird Gadget