Jun 2, 2008

Tomcat-аас болж азаартсан нь

Би ер нь JAVA болон JSP дээр л програмаа бичдэг. Тэгээд үүнээсээ болоод TOMCAT-ийг л вэб сервер болгож ашгилдаг. Тэгсэн чинь саяхан tomcat маань серверийн IP-г муухай азаартуулдаг байна шдээ. Вэб серверээ би нэг дотоод IP болох A1.A2.A3.A4 гэж давиад түүн дээрээ Real IP болох B1.B2.B3.B4 гэсэн IP-г NAT хийгээд интернэтэд байршуулсан юм. Түүнчлэн DNS дээр CCCC.CC гэсэн домайн хаягийг B гэсэн IP руу зааж өгсөн. Гаднаас орж буй систем уул нь A гэсэн IP-г огт мэдэхгүй харин B гэсэн IP-аар л хандах учиртай шүүдээ. C гэсэн домайнаар хандахаар DNS нь B гэсэн IP-г л зааж өгнө.

Вэб браузераар хандаж байгаа үед энэхүү асуудал бидэнд учрахгүй. Харин элдэв HACKING TECHNOLOGY ашиглаж байгаа хүнд бол гаргаж ирээд байнлээ.

жишээ нь:

telnet cccc.cc 80 гэж ороод
HEAD / HTTP/1.0 эсвэл GET / HTTP/1.0
гээд үз
тэгхэд

HTTP/1.1 302 Moved Temporarily
Location: http://A1.A2.A3.A4/index.jsp
Content-Length: 0
Server: Apache-Coyote/1.1
Connection: close

гээд IP-г маань гаргаад ирэндээ. Өөрөөр хэлбэл http://A1.A2.A3.A4/index.jsp гээд A1.A2.A3.A4 IP маань гараад ирлээ.
Ингээд чи баригдав уу!!!


Энийг яаж сэргийлэх вэ?? За эхлээд гол асуудлаа бичье.

telnet www.yahoo.com 80
GET / HTTP/1.0
гээд үзээрэй. Энэ үед URL огт гарч ирэхгүйгээр www.yahoo.com-ийн үндсэн хуудасны HTML SOURCE код гараад ирнэ.

Яагаад минийхийг азаартуулж байж yahoo-г гаргаж ирэхгүй байна??

Вэб браузер дээр http://www.yahoo.com гээ
д үзья. Тэгсэн чинь хуудас маань зүгээр гарч ирч мөн URL нь http://www.yahoo.com/ гээд байна.
За тэгвэл http://cccc.cc/ гээд үзья. Тэгтэл index.jsp-д байгаа миний хийсэн хуудас маань гараад ирлээ. Харин URL дээр
http://cccc.cc/index.jsp болчихсон байна. Яагаад араас нь index.jsp -ийг залгаад байна.

HTTP/1.1 302 Moved Temporarily
Location: http://A1.A2.A3.A4/index.jsp

Content-Length: 0

Server: Apache-Coyote/1.1

Connection: close


Гээд гарч ирээд байгаа нь автоматаар
http://A1.A2.A3.A4/index.jsp гэсэн хаягруу REDIRECT хийгээд байгаа учраас л миний IP гарч ирээд байгаа юм байна. Энэ нь TOMCAT-ийн онцлог ч юм уу BUG ч юм уу.

Энэ асуудлыг өөрийнхөөрөө шийдсэн минь

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class homePage extends HttpServlet{

public void doGet(HttpServletRequest request,HttpServletResponse response)
throws IOException, ServletException{
response.sendRedirect("http://CCCC.CC/index.jsp");
}
}

гэсэн java servlet бичнэ.
Одоо бичсэн servlet ээ тухайн вэбийн web.xml -д зааж өгнө.

гэсэн бичлэг хийнэ.
Одоо харин хуучин гарж байсанаа дахиад үзье
telnet cccc.cc 80

GET
/ HTTP/1.0


HTTP/1.1 302 Moved Temporarily
Location: http://CCCC.CC/index.jsp

Content-Length: 0

Server: Apache-Coyote/1.1

Connection: close

гээд гараад ирлээ. Эврика болчихлоо.
Одоо яасан. Бас нэг асуудал гарлаа.
Би web.xml дээ servlet-н зааж өгөөгүй болхоор үндсэн / ээр нөгөө зураг (*.jpg, *.gif, etc) болон бусад файл маань гарж ирхээ больчихлоо одоо яах вэ?

:((

Санаа зоволтгүй.
web.xml дээ бүх хэргэлдэг файлын өргөтгөлөө tomcat-н ерөнхий web.xml-д заасан MIME ээр болгохоор заагаад л өгчих.

за одоо боллоо. Яг сайхан ажиллаж чадлаа.

Болойшдээ...

My favorite jokes

JOKE #1
- Do you wanna chat?
- I'm busy.
- Hello, busy. I'm Baldan!...

JOKE #2
Boy: "Daddy? How did I come into this world?"
Dad: "Well, my child, some day I'll have to tell you any way.

Boy:"So why not today? Please!"
Dad: "OK, but listen carefully." "Mom and Dad met each other in a cyber cafe. In the restrooms of that cyber cafe, dad connected to mom. Mom at that time made some downloads from dad's memory stick. When dad finished uploading we discovered we used no firewall. Since it was too late to cancel or delete, nine months later we ended up with a virus."