نمایش نتایج 1 تا 7 از 7

نام تاپیک: چگونگی جلوگیری از حملات xss در جاوا

  1. #1

    Question چگونگی جلوگیری از حملات xss در جاوا

    سلام
    من اول کلی سرچ کردم اما در مورد جلوگیری این نوع حملات در جوا چیزی در سایت پیدا نکردم!
    راستش من قبلا در یک تاپیک دیگه یه سوال داشتم که میخواستم بدونم چطوری میشه یک مقدار رو از db سلکت دزد به طوری که به صورت لینک باشه و یه مقدار رو(مثل id) ببره به صفحه بعدی.
    دوستان کلی راهنمایی کردن . دم همشون گرم اما بعد از گذشتن خرم از پل گفتم بذار در url یه تست باگ xss بگیرم
    متاسفانه باگ داشت در گوگل هم سرچ کردم اما درتس متوجه نشدم چطوری میتونم جلوی این حملرو در جاوا بگیرم کد من اینه:
    <%@ page contentType="text/html;charset=windows-1252"%>
    <%@page import="java.util.*" %>
    <%@page import="java.sql.*" %>

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>home</title>
    </head>
    <body>
    <%
    String url;
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection con = java.sql.DriverManager.getConnection("jdbc:odbc:my odbc","SYSTEM","MANAGER");

    Statement statement = con.createStatement();

    ResultSet rs= statement.executeQuery("select name from mytable");
    while(rs.next())
    {

    String a= rs.getString("name");
    url ="propertis.jsp?name="+a;

    %>

    <br/> <a href="<%= url %>">Code</a>
    <%
    }

    statement.close();
    con.close();
    %>


    </body>
    </html>

    وقتی رانش میکنم در url صفحه دوم (همونی که بهش لینک شده) متغیر name مقدار هر چیزی رو میگیره و نمایش میده . و وقتی یک اسکریپت سادرو هم ران کنم اونو ران میکنه مثل این:
    <scritp> alret('salam mr')</script>

    من چطوری جلوی این کارو بگیرم؟؟؟؟؟؟؟؟

  2. #2

    نقل قول: چگونگی جلوگیری از حملات xss در جاوا

    دوستان راهنمایی کنین دیگه!
    اینطور که من چند جا دیدم ظاهرا نباید از ای عبارت استفاده کنم:
    <%=

    که من برای مقدار دادن به لینکم ازش استفاده کردم:
    <a href="<%= url %>">Code</a>

    البته توو خود کد نگاه کنید بهتر متوجه میشید.
    اگه راه دیگه ای هست هلپ کنین یا بگین چطوری از همین استفاده کنم طوری که باگ xss نداشته باشه

  3. #3

    Unhappy نقل قول: چگونگی جلوگیری از حملات xss در جاوا

    چرا کسی جواب نمیده؟
    من حتی با
    out.print("<a href='"+url+"'>code</a>

    امحان کردم ، کار میده اما بازم باگ xss داره! راهنمایی کنین دیگه
    آخرین ویرایش به وسیله pro_mvb : یک شنبه 09 اسفند 1388 در 10:49 صبح

  4. #4

    نقل قول: چگونگی جلوگیری از حملات xss در جاوا

    کسی به سایت رسیدگی میکنه؟

  5. #5

    نقل قول: چگونگی جلوگیری از حملات xss در جاوا

    شما باید ورودی ها رو چک کنید و کاراکتر های غیر مجاز رو فیلتر کنید

  6. #6

    نقل قول: چگونگی جلوگیری از حملات xss در جاوا

    خودم اوکیش کردم . اما با این حال بی معرفت نیستم
    دمت گرم
    یک راه حل ساده برای فقط مقادیر عدید مثل Int پیدا کردم اونم اینه:
    کافیه مقداری که دز صفحه دوgetParameter میکنین رو بعدش به این صورت پیش برین:
    String get= request.getParameter("ID"); 
    int r=Integer.parseInt(get);

    البته گفتم که این فقط برای اعدا جواب میده! برای String ها هنوز چیزی پیدا نکردم(البته با یه کد jdbc و چک کردن مقداری که در url هست با مقداری که در db هست میشه این کارو کرد . اما موقعی که میخوام 2 تا مقدار رو یعنی مقداری که از url گرفته شده و مقداری که در db هست رو با if چک کنم گیر میده . ظاهرا به خاطر هم جنس نبودنشون هست ( با اینکه هردو String هستن)
    اگه اینم اوکی بشه دیگه رلست
    آخرین ویرایش به وسیله pro_mvb : سه شنبه 11 اسفند 1388 در 00:02 صبح

  7. #7

    نقل قول: چگونگی جلوگیری از حملات xss در جاوا

    ببین من برنامه نویس جاوا نیستم ( php کار میکنم) ولی این مشکل برای همه برنامه نویس های وب هست. راه حلی که من پیشنهاد میکنم اینه که یه فانکشن طراحی کنی که یه متغیر ورودی بگیره و از این بابت چکش کنه و مقدار رو برگردونه. بعد شما اول متغیر هایی که از گت یا پست میگیری رو بفرست به این تابع و نتیجه رو استفاده کن. من تابعی که برای این کار استفاده میکنم و اینجا میزارم خودت تو جاوا شبیه سازیش کن.


    function __jClr($str)
    {

    $array_disWords = array(
    '/\<script[^\>]*?\>.*?\<\/script\>/si',
    '/script/si',
    '/hex/si',
    '/eval/si',
    '/\.location/si',
    '/\.cookie/si',
    '/\.src/si',
    '/refresh/si',
    '/alert/si'
    );

    $array_rpcWords = array(
    '',
    '<span class="red">script</span>',
    '<span class="red">hex</span>',
    '<span class="red">eval</span>',
    '<span class="red">.location</span>',
    '<span class="red">.cookie</span>',
    '<span class="red">.src</span>',
    '<span class="red">refresh</span>',
    '<span class="red">alert</span>'
    );

    $str = preg_replace($array_disWords, $array_rpcWords, $str);
    return $str;

    }


قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •