OWASP Top 10 主要目的,是將最常見的網路應用系統安全弱點列出,並提供基本的方法保護防止這些弱點,是軟體開發安全計劃最好的開始。
以下針對第十點的弱點,做一些簡單的說明和示範:
10. Failure to Restrict URL Access:應用程式敏感地區是被保護的Links或是URLs,而這些是不會提供給未被授權的使用者。這也容易讓攻擊者利用這項弱點進入,並進行未被授權的行為。
寬廣無際的技術翰海中,能遺忘的就把它遺忘掉吧~ 無法遺忘的,總會有個角落,靜靜地等候著~
OWASP Top 10 主要目的,是將最常見的網路應用系統安全弱點列出,並提供基本的方法保護防止這些弱點,是軟體開發安全計劃最好的開始。
以下針對第十點的弱點,做一些簡單的說明和示範:
10. Failure to Restrict URL Access:應用程式敏感地區是被保護的Links或是URLs,而這些是不會提供給未被授權的使用者。這也容易讓攻擊者利用這項弱點進入,並進行未被授權的行為。
通常在實際的專案需求上,SharePoint Ribbon上的功能並不是全部都開放給全部的使用者可以操作,有時候因為不同權限的關係,或是公司內部ERP上的整合,甚至企業HR人事的架構不同,都希望可以每個不同的使用者進來瀏覽SharePoint 之後,可以有不同的Ribbon可以操作。
但是預設SharePoint Ribbon是統一開放給使用者,因此若是想要根據不同的使用者權限檢視不同的Ribbon功能項的話,那麼該如何來設計了?以下為實作:
1. 因為每一個Page的Ribbon控管可能都不同,因此這邊使用WebPart放置到頁面來啟用此效果,先建立一個視覺化的網頁組件:
2. 先來看一下http://sharepoint/default.aspx瀏覽的畫面,在Ribbon的部分如下圖所示,一般的使用者若是沒有特別的控管,那麼可以檢視以下的「編輯」和「管理」的功能:
3. 在RibbonWebPartUserControl.ascx.cs的Page_Load加入以下程式碼,透過SPRibbon取得目前的Ribbon物件之後,再透過叫用TrimById的方法將某些Ribbon控制項隱藏:
protected void Page_Load(object sender, EventArgs e)
{
SPRibbon currentRibbon = SPRibbon.GetCurrent(this.Page);
if (currentRibbon != null)
{
if (SPContext.Current.Web.CurrentUser.Name.ToLower() ==
"netdb\\administrator")
{
currentRibbon.TrimById("Ribbon.WebPartPage.Edit");
}
else if (SPContext.Current.Web.CurrentUser.Name.ToLower() ==
"netdb\\adams")
{
currentRibbon.TrimById("Ribbon.WebPartPage.Manage");
}
}
}
4. 使用NETDB\Administrator登入http://sharepoint/default.aspx,點選頁面的Ribbon可得到以下的畫面:
5. 使用NETDB\Adams登入http://sharepoint/default.aspx,點選頁面的Ribbon可得到以下的畫面:
6. 比較第2步驟、第4步驟和第5步驟的畫面,可以得知根據不同的使用者在Ribbon控制項的功能會跟隨著異動,而有不同的顯示。
最後,那麼在程式碼中SPRibbon的TrimById(“xxx”)方法中的參數到底要放哪一個值?這個才是重點,其實要放的值為Ribbon上那個控制項的ClientID,這些ID有非常的多,主要的依據要參考以下文件:C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\GLOBAL\XML\CMDUI.XML中的定義,大概的XML結構如下(這邊只擷取部分畫面):
我們在前一篇文章中:http://ms-net.blogspot.tw/2015/04/aspnet-using-reportviewer-control-to.html 有介紹到使用ReportViewer控制項設計報表的基本入門方式,剛好就有朋友另外問我有關頁首和頁尾的使用方式,因此我在這列出其中有兩項的解決方式:
1. 報表中加頁首和頁尾
2. 讓報表Table的欄位可以出現在每一頁的最上方
請參考以下的做法:
OWASP Top 10 主要目的,是將最常見的網路應用系統安全弱點列出,並提供基本的方法保護防止這些弱點,是軟體開發安全計劃最好的開始。
以下針對第八點的弱點,做一些簡單的說明和示範:
8. Insecure Cryptographic Storage:網路應用程式很少正常使用cryptographic functions來保護資料,使得攻擊者有機可乘並冒用其他使用者身份,進行其他犯罪行為,如盜刷信用卡等。
之前有朋友問我,要在asp.net上使用類似報表的方式在網頁上呈現料資料結果,到底是使用Crystal Report 或是自己寫程式使用GridView比較好? 事實上,端看需求而言,假設要做到像Crystal Report 這樣的功能,那麼自己刻UI畫面一定是比要累的,其實在ASP.NET中有一個ReportViewer控制項還蠻好用的。
以下我將ReportViewer控制項有關Print的做法,寫成一個sample code範例,有興趣的朋友可以參考一下範例程式碼檔案,我放在以下網址:
https://www.dropbox.com/s/duonhayz0gz6xd9/PrintWeb.7z?dl=0
另外,我也把簡單的教學開發方式,錄製成步驟放在以下的URL: