2021年2月5日 星期五

OWASP Encode forHtml和forJava的差異

Encode.forHtml:
可防範XSS(Cross-Site Scripting),把「<」、「&」、「>」、「"」、「""」這類的特殊字元取代成「&lt;」、「&amp;」、「&gt;」、「&#34;」、「&#34;&#34;」。
但是不會取代「換行字元」,無法防範Log Forging (日誌偽造),防範Log Forging一定要取代「換行字元」

Encode.forJava:
可防範Log Forging (日誌偽造),把「換行字元」取代

Source Code:
https://github.com/OWASP/owasp-java-encoder/blob/main/core/src/main/java/org/owasp/encoder/Encode.java

官網:
https://owasp.org/owasp-java-encoder/
目前最新版是1.2.3,可用在Java 5以上的專案。

encoder-jsp-1.2.3.jar是JSP tag方式使用,jsp檔需要聲明taglib如下
<%@taglib prefix="e" uri="https://www.owasp.org/index.php/OWASP_Java_Encoder_Project" %>

encoder-1.2.3.jar是直接透過Method方式呼叫使用,可以用於一般java程式。

REF:
https://owasp-top-10-proactive-controls-2018.readthedocs.io/en/latest/c4-encode-escape-data.html


2021年1月24日 星期日

HikariCP Example

Java 6
https://github.com/imrexhuang/HikariCPClientExample/tree/master/ForJava6

Java 8+
https://github.com/imrexhuang/HikariCPClientExample/tree/master/ForJava8%2B

HikariCP
https://github.com/brettwooldridge/HikariCP#configuration-knobs-baby

HikariCP Maven:
https://search.maven.org/search?q=com.zaxxer.hikaricp

作者:Brett Wooldridge
https://github.com/brettwooldridge

作者為何要開發HikariCP的專訪
https://dzone.com/articles/jooq-tuesdays-what-it-takes-to-write-the-fastest-java-connection-pool

【追光者系列】HikariCP默认配置


利用SQL Server的sp_who指令查看
沒有設定setMinimumIdle和setMaximumPoolSize時,的確預設是建立10個Connection


超過預設10個Connection會出現以下錯誤訊息,無法再用HikariDataSource去getConnection導致timeout:

java.sql.SQLTimeoutException: Timeout after 30004ms of waiting for a connection.
    at com.zaxxer.hikari.pool.BaseHikariPool.getConnection(BaseHikariPool.java:233)
    at com.zaxxer.hikari.pool.BaseHikariPool.getConnection(BaseHikariPool.java:183)
    at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:93)
    at HikariCPDataSource.getConnection(HikariCPDataSource.java:33)
    at SQLServerPOC.main(SQLServerPOC.java:25)