網頁

顯示具有 資訊安全 標籤的文章。 顯示所有文章
顯示具有 資訊安全 標籤的文章。 顯示所有文章

2015年7月3日 星期五

稍微強化script_tags防止XSS攻擊

用strip_tags用這麼久才知道,原來它沒法完全去除,雖然還是有些東西可以拿掉,如:onmuouse="alert('text')這類,但script tag拿不掉,很容易就中XSS攻擊,參考了下wordpress中的wp_strip_all_tags的寫法,基本上只是增加了pre_replace這行,至少將style或script的內容拿掉就能阻止大多數的XSS攻擊了。

function strip_all($string){
    $string = preg_replace( '@<(script|style)[^>]*?>.*?</\\1>@si', '', $string );
    $string = strip_tags($string);
    return $string;
}


參考網址:
Function Reference/wp strip all tags

2013年10月3日 星期四

[Block] xxxxxxxxxx ran insecure content from http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css

出現這種奇怪的問題,例如:
[Block] xxxxxxxxxx ran insecure content from http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css

主要原因是明明正在https中,script link卻在http,這狀況其實只要將"http:"這串字拿掉,留下//ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css,這樣就不會有這個error出現了

參考網址:
HTTPS-friendly jQuery CSS theme from Google CDN

2012年11月20日 星期二

如何block submit form by Robots-後續

這篇是繼上篇文章:如何block submit form by Robots的後續,實驗了2~3天,看來都沒有任何的亂七八糟文章進來了,真的有用,我個人是用方法一,但我多加了用css,而不是在tag後寫入display:none,例如

<style>
.xxx{
   display:nonee;
}
</style>
<input name="check" type="text" value="" class="xxx" />

這樣可以達到相同效果,但對機器人而言,要處理就更麻煩

2012年11月19日 星期一

如何block submit form by Robots

最近maintain的一個網站一直被攻擊,但明明那位置要登入才能寫入,查了查原因,看來當初設計有問題,回應部分是不需要登入,但回應又設計成跟文章是一塊的,真是有夠怪,但這次重點在一直有機器人塞廣告進來,客戶不堪其擾,但又不想又要客戶看什麼鳥圖示鍵入文字,所以需求如下:
  1. 擋掉機器人
  2. 不要另外又要鍵入
查了查資料,真有聰明人寫出了一些方式,方法有兩種:
  1. 利用css中的display:none
  2. 利用javascript(但javascript關掉就沒用了)
方法1,利用css中的display:none,例如

<input name="check" type="text" value="" style="display:none" />

這是利用機器人看到input就會填滿,但display:none讓使用者看不到,所以在server端去檢查這變數是否被塞值,來判定是否是機器人,有值就跳掉。

方法2,利用javascript,例如

<form name="myform" method="post" action="empty.php">...</form>

<script type="text/javascript">
var NameInFormTag = "myform";
var ActionURL = "youwant.php";
eval("document."+NameInFormTag+".action='"+ActionURL+"'");
</script>


這樣讀完網頁後,實際要傳值的php存放在瀏覽器中,但機器人看到的是empty.php

實際用方法1,目前看起來還算ok

參考網址:
Protect Your Forms from Spam
One Way to Block Form Submission Robots

2012年11月13日 星期二

Spring、J2EE學習筆記-HttpOnly設定

有個案子安全檢測來了個底下這個低風險的問題


[1/2] 在階段作業 Cookie 中遺漏 HttpOnly 屬性 


說實在,第一眼看到時,完全不知道是什麼,總之,就是要我處理掉它(內心os:處理掉不知道會有什麼問題)。

查了下資料,Tomcat 7及spring 3後,都可以在web.xml中的session-config去設定,例如:

<session-config>
        <session-timeout>10</session-timeout>
        <cookie-config>
            <http-only>true</http-only>
            <secure>true</secure>
        </cookie-config>
</session-config>

只是,我用的好像是很舊的,但還是有法子,就是在server.xml中的Context加入

<Context docBase="{你的專案路徑}" path="{你的專案路徑}" reloadable="true" useHttpOnly="true"/>

這樣就ok了,查了下是說防止xss的方法之一,只能說年頭要防的東西太多了

參考網址:
Java EE 6.0 的 Cookie 类已经有设置 HttpOnly 的方法
Spring安全控制
How do you configure HttpOnly cookies in tomcat / java webapps?
HttpOnly介绍以及防止XSS攻击时的作用(转)
How do I set httpOnly and secure cookies with Spring Security?