2017年9月24日 星期日

OFFICE 2016 KB4011039 更新BUG

每一季又到了要交一堆文件的時光,所以WORD會用得比較凶。

今天在合併一表格二個儲存格後,竟然發生原本會合併的文字的完全不見,而且合併後的儲存格變成無法輸入任何文字。

早有災情反應 ,依建議移除掉 KB4011039
重開機後,問題解決。

微軟說,預計發行中的下一步的每月更新暫訂排程的 2017 年 10 月 3。

 

2017年9月18日 星期一

免費的白箱檢測工具puma scan

上網找了免費的白箱檢測工具,找到了puma scan

因為支援OWASP TOP 10的檢測,所以這是一個符合客戶需求又能與Visual studio結合的工具(白話說...交差了事矣....)
更重要的是這不用錢....檢測工具都貴森森的,尤其是源碼檢測工具。

https://marketplace.visualstudio.com/items?itemName=PumaSecurity.PumaScan#overview

Diagnostic extension for the .NET Compiler Platform ("Roslyn") that performs static code analysis for vulnerabilities identified in the OWASP Top 10, SANS/CWE Top 25, and other common insecure coding patterns.
Current analysis categories:
  • Insecure Configuration
  • SQL Injection
  • LDAP Injection
  • Path Tampering
  • Weak Password Configuration
  • Unvalidated Redirects
  • Cross-Site Scripting
  • Cross-Site Request Forgery
  • Weak Input Validation
  • Insecure Cryptography
  • Deserialization Vulnerabilities 
 
puma scan針對Roslyn且只適用在VS2015以上的版本,安裝方式可以參考

https://www.pumascan.com/installation.html#installation


VSIX>>在Online > Visual Studio Galley, search for “Puma Scan”

NuGet>>在Tools > NuGet Package Manager > Package Manager Console輸入
Get-Project -All | Install-Package Puma.Security.Rules

如果只裝了VSIX,則要針對單一專案進行分析時,就在專案按右鍵>>Analyze>>Run Code Analysis。分析後的結果會顯示在Output window。Error List Window 也會條列出。

如果想要匯出好看一點的報告,可以下載安裝 Error List Manager 2 (ELM2)
方便在Error List Window匯出HTML、EXCEL、PDF的報告,雖然陽春且無法選擇匯出欄位,但總比直將將output複製貼上存成文字檔要來得好。

分析的Puma.Security.Rules 可以自行勾選, 檢測的原則可以參考 

https://www.pumascan.com/rules.html

初步研究到此,接下來困難的是要看懂檢測的結果以及條列高中低的等級。

唉哎.....好多的warning............................

2016年11月8日 星期二

超過 249 個非叢集索引或資料行統計資料

SQL Server 2000,一個資料表上要建立索引時,出現以下訊息,

不得在一個資料表上建立超過 249 個非叢集索引或資料行統計資料

Cannot create more than 249 nonclustered indices or column statistics on one table.


 先查看索引數,當然不可能有249個,所以查詢了統計資訊。

select 'drop statistics '+object_name(a.id)+'.'+a.name 
   from  sysindexes a inner join .sysindexkeys b
     on a.id = b.id and a.indid = b.indid inner join syscolumns  c
     on b.id = c.id and b.colid = c.colid
  where indexproperty(a.id, a.name, 'IsStatistics') = 1 
    and object_name(a.id) = 'your_table'  


先確認是否已有249個統計值,如果有,就先刪除不要的,再建一次index應該就行了。

2016年10月20日 星期四

JSON回傳內容含backslash

同事提供一段使用C# MVC 寫的JSON回傳

return Json(JsonConvert.SerializeObject(new { status = "SUCCESS", message = "資料傳送成功" }), "text/html", JsonRequestBehavior.AllowGet);
結果回傳

"{\"status\":\"SUCCESS\",\"message\":\"資料傳送成功\"}" 

 
他問說可否不要反鈄線 及前後的雙引號,要像這樣

{"status":"SUCCESS","message":"資料傳送成功"}

 查了一下,原來是JsonConvert.SerializeObject造成的,改用物件傳入就可以解決了。

改成以下這樣,就OK了

var data = new { status = "SUCCESS", message = "資料傳送成功" };
 
return Json(data, "application/json", JsonRequestBehavior.AllowGet);

記錄一下....


2016年9月23日 星期五

IE IFRAME 遺失SESSION問題

在一個ASP開發的網站,以IFRAME方式顯示另一個網站的MVC WEBSITE功能。

結果在部份機器的IE瀏覽器上,會有SESSION遺失的問題。但在FIREFOX或GOOGLE CHROME上則不會有問題。

找了很久,突然想到在之前舊的WEB FORM網站,在頁面Page_Load事件會加入一段程式碼

 HttpContext.Current.Response.AddHeader("p3p", "CP=""IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT""")





於是在新網站,Global.asax.cs檔加入以下事件及程式碼


 protected void Application_BeginRequest(object sender, EventArgs e)
        {
            HttpContext.Current.Response.AddHeader("p3p", "CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"");
        }

  
解決問題了.       

2016年8月22日 星期一

iisreset無法啟動



查看事件檢視器


按著錯誤訊息開啟相關服務,iisreset 就OK了.

windows問題,先看事件檢視器,十之八九都能找到蛛絲馬跡。

2016年7月7日 星期四

bcp 轉出uft-8 檔案

sql server 2014前的版本的bcp 不支援匯出utf-8格式。

但sql server 2016的bcp則已有支援,以下是MSDN上的說明

13 版之前的版本 (SQL Server 2016) 不支援字碼頁 65001 (UTF-8 編碼)。 開頭為 13 的版本可以將 UTF-8 編碼匯入舊版的 SQL Server。

測了一下,DB仍是用SQL 2014,然後去下載sql 2016的odbc driver 13及command line utilities 13,可轉出UTF-8格式資料。

Microsoft® ODBC Driver 13 (Preview) for SQL Server® – Windows

Microsoft® Command Line Utilities 13 for SQL Server®

安裝後,使用C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\下的bcp 來進行資料轉出,如不確定bcp版本,可執行

bcp -v



最後指定code page完成UFT-8檔的轉出囉.

"C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\bcp" "exec zspTest 123" queryout "c:\temp\test.csv" -cC65001 -T -StestServer

IIS 網站無法下載中文檔名檔案因為取消高位元字元

 網址+中文檔案名稱方式下載檔案顯示 404 - 找不到檔案或目錄。 但英數字檔案名稱則可下載。 因為設定GCB IIS,其中1項 將高位元字元預設取消勾選了。 27 TWGCB-04-014-0028 要求篩選與其他限制模組 允許高位元字元 這項原則設定決定查詢...