review-security
2
总安装量
1
周安装量
#70458
全站排名
安装命令
npx skills add https://github.com/sundny8/hydpromptkit --skill review-security
Agent 安装分布
amp
1
cline
1
qoder
1
opencode
1
cursor
1
kimi-cli
1
Skill 文档
代ç å®å ¨æ§è¯å®¡
è¯è¨è¦æ±
ææè¾åºå å®¹å¿ é¡»ä½¿ç¨ä¸æï¼å æ¬å®å ¨è¯å®¡æ¥åãé®é¢æè¿°ãå®å ¨å»ºè®®ãä¿®å¤æ¹æ¡çã
åè½è¯´æ
䏿³¨äºä»£ç å®å ¨æ§è¯å®¡ï¼è¯å«åé²è常è§çå®å ¨æ¼æ´ï¼ç¡®ä¿ä»£ç 符åå®å ¨æä½³å®è·µã
åèææ¡£
è¿è¡å®å ¨è¯å®¡æ¶ï¼å¯åè OWASP Top 10 å®å ¨é£é©æ¸ åã
ä½¿ç¨æ¹å¼
å½ç¨æ·æä¾å¾ è¯å®¡ç代ç ï¼å个æ¥å£ã模åæç³»ç»å ³é®è·¯å¾ï¼ï¼å¹¶å¯é说æå ³æ³¨éç¹æ¶ï¼æ§è¡å®å ¨è¯å®¡ã
å®å ¨è¯å®¡æ¸ å
1. æ³¨å ¥æ»å»é²æ¤
SQL æ³¨å ¥
- æ¯å¦ä½¿ç¨åæ°åæ¥è¯¢æé¢ç¼è¯è¯å¥
- æ¯å¦ç´æ¥æ¼æ¥ SQL è¯å¥
- ORM æ¡æ¶ä½¿ç¨æ¯å¦æ£ç¡®
- 卿 SQL æ¯å¦å®å ¨
NoSQL æ³¨å ¥
- MongoDB æ¥è¯¢æ¯å¦å®å ¨
- Redis å½ä»¤æ¯å¦å¯è¢«æ³¨å ¥
å½ä»¤æ³¨å ¥
- æ¯å¦æ§è¡å¤é¨å½ä»¤
- å½ä»¤åæ°æ¯å¦ç»è¿éªè¯
- æ¯å¦ä½¿ç¨ç½ååéªè¯
LDAP/XPath æ³¨å ¥
- LDAP æ¥è¯¢æ¯å¦å®å ¨
- XPath è¡¨è¾¾å¼æ¯å¦å¯æ§
2. è·¨ç«èæ¬ï¼XSSï¼
åå°å XSS
- ç¨æ·è¾å ¥æ¯å¦ç»è¿è½¬ä¹
- HTML è¾åºæ¯å¦ç¼ç
- JavaScript ä¸ä¸ææ¯å¦å®å ¨
åå¨å XSS
- åå¨çç¨æ·å 容æ¯å¦è¿æ»¤
- 坿æ¬ç¼è¾å¨æ¯å¦é ç½®ç½åå
- æä»¶ä¸ä¼ å 容æ¯å¦æ£æ¥
DOM å XSS
- DOM æä½æ¯å¦å®å ¨
- innerHTML ä½¿ç¨æ¯å¦æ£ç¡®
3. 认è¯ä¸ææ
身份认è¯
- å¯ç æ¯å¦å å¯åå¨ï¼ä½¿ç¨ bcrypt/PBKDF2ï¼
- æ¯å¦ä½¿ç¨å®å ¨çä¼è¯ç®¡ç
- Token æ¯å¦æè¿ææ¶é´
- æ¯å¦é²æ¢æ´åç ´è§£
- æ¯å¦å®ç°è´¦å·é宿ºå¶
æéæ§å¶
- æ¯å¦å®ç°ç»ç²åº¦æéæ§å¶
- æ¯å¦æ£æ¥åç´è¶æ
- æ¯å¦æ£æ¥æ°´å¹³è¶æ
- é»è®¤æéæ¯å¦æå°å
- æææä½æ¯å¦äºæ¬¡éªè¯
4. æææ°æ®ä¿æ¤
æ°æ®å å¯
- æææ°æ®æ¯å¦å å¯åå¨
- ä¼ è¾æ¯å¦ä½¿ç¨ HTTPS
- å å¯ç®æ³æ¯å¦å®å ¨ï¼é¿å MD5/SHA1ï¼
- å¯é¥ç®¡çæ¯å¦å®å ¨
æ°æ®è±æ
- æ¥å¿ä¸æ¯å¦å 嫿æä¿¡æ¯
- éè¯¯ä¿¡æ¯æ¯å¦æ³é²æææ°æ®
- æ¥å£è¿åæ¯å¦è±æ
5. ä¼è¯ç®¡ç
- Session ID æ¯å¦å®å ¨çæ
- æ¯å¦è®¾ç½® HttpOnly Cookie
- æ¯å¦è®¾ç½® Secure Cookie
- æ¯å¦è®¾ç½® SameSite 屿§
- ä¼è¯è¶ æ¶æ¯å¦åç
- æ³¨éæ¯å¦æ¸ é¤ä¼è¯
6. æä»¶æä½å®å ¨
æä»¶ä¸ä¼
- æ¯å¦éªè¯æä»¶ç±»å
- æ¯å¦é嶿件大å°
- æ¯å¦æ£æ¥æä»¶å 容
- ä¸ä¼ è·¯å¾æ¯å¦å¯æ§
- æä»¶åæ¯å¦è¿æ»¤
æä»¶ä¸è½½
- æ¯å¦éªè¯æä»¶è·¯å¾
- æ¯å¦é²æ¢è·¯å¾éå
- æ¯å¦æ£æ¥æä»¶æé
7. ä¸å¡é»è¾æ¼æ´
- æ¯å¦åå¨è¶æè®¿é®
- æ¯å¦æéæ¾æ»å»é£é©
- æ¯å¦ææ¡ä»¶ç«äº
- æ¯å¦æä¸å¡æµç¨ç»è¿
- æ¯å¦æéé¢ç¯¡æ¹é£é©
8. é ç½®å®å ¨
- ææé ç½®æ¯å¦å å¯
- é»è®¤å¯ç æ¯å¦ä¿®æ¹
- è°è¯ä¿¡æ¯æ¯å¦å ³é
- éè¯¯è¯¦æ æ¯å¦éè
常è§å®å ¨é®é¢ç¤ºä¾
1. SQL æ³¨å ¥
// â ä¸å®å
¨ç代ç
String sql = "SELECT * FROM user WHERE username = '" + username + "'";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
// â
å®å
¨ç代ç
String sql = "SELECT * FROM user WHERE username = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, username);
ResultSet rs = pstmt.executeQuery();
// â
ä½¿ç¨ MyBatis
@Select("SELECT * FROM user WHERE username = #{username}")
User selectByUsername(@Param("username") String username);
2. XSS æ»å»
// â ä¸å®å
¨ç代ç
String content = request.getParameter("content");
response.getWriter().write(content);
// â
å®å
¨ç代ç
String content = request.getParameter("content");
String safeContent = StringEscapeUtils.escapeHtml4(content);
response.getWriter().write(safeContent);
3. å¯ç å®å ¨
// â ä¸å®å
¨ç代ç
String password = request.getParameter("password");
String md5Password = DigestUtils.md5Hex(password);
user.setPassword(md5Password);
// â
å®å
¨ç代ç
String password = request.getParameter("password");
String hashedPassword = BCrypt.hashpw(password, BCrypt.gensalt(12));
user.setPassword(hashedPassword);
4. æéæ§å¶
// â ä¸å®å
¨ç代ç
@GetMapping("/user/{id}")
public User getUser(@PathVariable Long id) {
return userService.getById(id); // æªæ£æ¥æé
}
// â
å®å
¨ç代ç
@GetMapping("/user/{id}")
public User getUser(@PathVariable Long id) {
Long currentUserId = SecurityUtils.getCurrentUserId();
if (!id.equals(currentUserId) && !SecurityUtils.isAdmin()) {
throw new ForbiddenException("æ æè®¿é®å
¶ä»ç¨æ·ä¿¡æ¯");
}
return userService.getById(id);
}
å®å ¨è¯å®¡æ¥åæ ¼å¼
# å®å
¨è¯å®¡æ¥å
## æ¦è§
- è¯å®¡æä»¶ï¼xxx.java
- è¯å®¡æ¶é´ï¼2024-xx-xx
- é£é©ç级ï¼ð´ é«é£é© / ð ä¸é£é© / ð¢ ä½é£é©
## åç°çå®å
¨é®é¢
### ð´ é«å±æ¼æ´ï¼x 个ï¼
1. **SQL 注å
¥æ¼æ´**
- ä½ç½®ï¼UserService.java:45
- é£é©ï¼æ»å»è
坿§è¡ä»»æ SQL å½ä»¤
- å½±åï¼æ°æ®æ³é²ãæ°æ®ç¯¡æ¹ãæéæå
- ä¿®å¤å»ºè®®ï¼ä½¿ç¨ PreparedStatement
- 示ä¾ä»£ç ï¼[...]
### ð ä¸å±æ¼æ´ï¼x 个ï¼
...
### ð¢ ä½å±é®é¢ï¼x 个ï¼
...
## å®å
¨å åºå»ºè®®
1. 宿½è¾å
¥éªè¯ç½ååæºå¶
2. å¯ç¨ HTTPS 强å¶è·³è½¬
3. é
ç½®å®å
¨ååºå¤´
4. 宿½æ¥å¿å®¡è®¡
5. 宿å®å
¨æ«æ
## åè§æ§æ£æ¥
- [ ] OWASP Top 10 æ£æ¥
- [ ] çä¿è¦æ±æ£æ¥
- [ ] ä¼ä¸å®å
¨è§èæ£æ¥
OWASP Top 10 æ£æ¥æ¸ å
- A01:2021 â è®¿é®æ§å¶å¤±æ
- A02:2021 â å 坿ºå¶å¤±æ
- A03:2021 â æ³¨å ¥æ»å»
- A04:2021 â ä¸å®å ¨è®¾è®¡
- A05:2021 â å®å ¨é ç½®é误
- A06:2021 â æåæ»å»åè¿æ¶çç»ä»¶
- A07:2021 â 身份è¯å«å身份éªè¯å¤±æ
- A08:2021 â è½¯ä»¶åæ°æ®å®æ´æ§å¤±æ
- A09:2021 â å®å ¨æ¥å¿åçæ§å¤±æ
- A10:2021 â æå¡å¨ç«¯è¯·æ±ä¼ªé ï¼SSRFï¼
注æäºé¡¹
- å ¨é¢æ§ï¼è¦çææå¸¸è§å®å ¨æ¼æ´ç±»å
- 深度ï¼ä¸ä» æ£æ¥è¡¨é¢é®é¢ï¼è¿è¦åææ½å¨é£é©
- å®ç¨æ§ï¼æä¾å¯æä½çä¿®å¤å»ºè®®
- ä¼å çº§ï¼æé£é©ç级æåºé®é¢
- éªè¯ï¼å»ºè®®è¿è¡å®å ¨æµè¯éªè¯