yii1-security-auditlisted
Install: claude install-skill hmj1026/dhpk
# Yii 1.1 框架安全審計(yii1-security-audit)
分析 Yii 1.1 專案的框架機制與配置踩坑,重點覆蓋:
- 訪問控制:`filters()` / `accessRules()` / `CAccessControlFilter` 規則與覆蓋範圍
- RBAC:`Yii::app()->user->checkAccess()` / `getLevel()` 鑑權完整性與物件歸屬
- CSRF:`protected/config/main.php` 的 `request` 元件設定
- 輸出編碼:views 是否使用 `CHtml::encode()`;危險原樣輸出
- SQL 注入:`createCommand("....$var")` 字串拼接;`CDbCriteria` 未綁定參數
- Mass Assignment:`$model->attributes = $_POST[...]` 配合 `rules()` / scenario 安全邊界
- 上傳安全:`CUploadedFile` 的副檔名白名單、MIME 檢查、儲存位置
- Session 安全:`cookieParams` httponly / secure 設定
## When NOT to Use
- Yii2 專案(類別前綴 `yii\`、`composer.json` 含 `yiisoft/yii2`、有 `web/index.php`)— 本技能僅針對 Yii 1.1。
- 非 PHP 或非 Yii 框架的專案。
- 純業務邏輯 / 演算法正確性審查(非框架安全機制)。
- 需要動態執行 exploit 的滲透測試 — 本技能只做白盒靜態審計,PoC 僅輸出可觀測框架而非可直接執行的 payload。
## 輸入
用戶提供:
- `source_path`:Yii 1.1 專案根目錄
可選:
- `output_path`:輸出目錄(預設 `{source_path}_audit`)
## Output
```
{output_path}/framework_audit/
yii1_{timestamp}.md
```
報告須逐項輸出 AccessControl / RBAC / CSRF / XSS / SQL / MassAssignment / File / Session 結果,每條發現含:通用類型碼 + 位置(檔名:行號)+ 可觀測 PoC 框架 + 對應 Yii 1.1 API 的修復建議。
## 框架識別(必做)
必須給出 Yii 1.1 識別證據點(不允許空口斷言):
| 證據類型 | 查找目標 |
|---------|---------|
| 入口腳本 | `protected/yiic.php` 或根目錄 `index.php` 含 `Yii::createWebApplication` |
| 保護目錄 | `protected/controllers/`、`protected/models/`、`protected/views/` 均存在 |
| 框架類別 | 繼承 `CController`、`CActiveRecord`、`CFormModel` |
| 設定檔 | `protected/config/main.php` 包含 `components` 陣列 |
| 非 Yii2 確認 | 沒有 `composer.json` 的 `yiisoft/yii2`、沒有 `web/index.