This commit is contained in:
sickle committed 2025-01-14 17:53:04 +08:00
1 parent d807cf2065
commit dda1e4ae45
4 files changed
+45 -58

No files matched your search

+1
View File
@@ -117,6 +117,7 @@
- 内网 IP 匹配
- 完善了 URL 的匹配,使其能够匹配 IP 以及更多协议
- 设计了 Logo,优化文档排版样式
- 修复配置信息不能展示的问题
---
+5 -16
View File
@@ -495,23 +495,12 @@ chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
});
return true; // 保持消息通道打开
} else if (request.type === 'GET_CONFIG') {
// 返回配置信息,将正则表达式转换为字符串
const config = {
WHITELIST: SCANNER_CONFIG.WHITELIST,
API: {
PATTERN: SCANNER_CONFIG.API.PATTERN.toString(),
STATIC_FILE_PATTERN: SCANNER_CONFIG.API.STATIC_FILE_PATTERN.toString()
},
DOMAIN: {
BLACKLIST: SCANNER_CONFIG.DOMAIN.BLACKLIST,
SPECIAL_DOMAINS: SCANNER_CONFIG.DOMAIN.SPECIAL_DOMAINS
},
IP: {
PRIVATE_RANGES: SCANNER_CONFIG.IP.PRIVATE_RANGES.map(pattern => pattern.toString()),
SPECIAL_RANGES: SCANNER_CONFIG.IP.SPECIAL_RANGES.map(pattern => pattern.toString())
// 只返回白名单配置
sendResponse({
config: {
WHITELIST: SCANNER_CONFIG.WHITELIST
}
};
sendResponse({ config });
});
}
});
+25
View File
@@ -543,4 +543,29 @@ body {
.fingerprint-group:hover {
transform: translateX(2px);
}
/* 白名单域名展示样式 */
.whitelist-domains {
margin-top: 10px;
background: #f8f9fa;
border-radius: 6px;
padding: 12px;
}
.domain-item {
display: inline-block;
padding: 6px 12px;
background: #fff;
border-radius: 4px;
margin: 4px;
font-size: 13px;
color: #495057;
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
.config-content {
color: #868e96;
font-size: 13px;
margin-bottom: 8px;
}
+14 -42
View File
@@ -22,7 +22,7 @@ function switchPage(pageName) {
// 显示配置信息
function displayConfig(config) {
const container = document.querySelector('.config-page');
const container = document.querySelector('.config-page .container');
if (!config) {
container.innerHTML = '<div class="error">无法获取配置信息</div>';
return;
@@ -31,43 +31,16 @@ function displayConfig(config) {
let html = `
<div class="config-section">
<div class="config-group">
<h3>白名单域名</h3>
<textarea class="whitelist-input" placeholder="输入白名单域名,用逗号分隔">${config.WHITELIST ? config.WHITELIST.join(', ') : ''}</textarea>
</div>
<div class="config-group">
<h3>API 配置</h3>
<div class="config-item">
<div class="config-label">API 路径匹配</div>
<textarea class="config-value">${config.API.PATTERN || ''}</textarea>
<h3>扫描白名单</h3>
<div class="config-content">
以下域名将不会被扫描:
</div>
<div class="config-item">
<div class="config-label">静态文件匹配</div>
<textarea class="config-value">${config.API.STATIC_FILE_PATTERN || ''}</textarea>
</div>
</div>
<div class="config-group">
<h3>域名配置</h3>
<div class="config-item">
<div class="config-label">域名黑名单</div>
<textarea class="config-value">${config.DOMAIN.BLACKLIST ? config.DOMAIN.BLACKLIST.join(', ') : ''}</textarea>
</div>
<div class="config-item">
<div class="config-label">特殊域名</div>
<textarea class="config-value">${config.DOMAIN.SPECIAL_DOMAINS ? config.DOMAIN.SPECIAL_DOMAINS.join(', ') : ''}</textarea>
</div>
</div>
<div class="config-group">
<h3>IP 配置</h3>
<div class="config-item">
<div class="config-label">私有 IP 范围</div>
<textarea class="config-value">${config.IP.PRIVATE_RANGES ? config.IP.PRIVATE_RANGES.join(', ') : ''}</textarea>
</div>
<div class="config-item">
<div class="config-label">特殊 IP 范围</div>
<textarea class="config-value">${config.IP.SPECIAL_RANGES ? config.IP.SPECIAL_RANGES.join(', ') : ''}</textarea>
<div class="whitelist-domains">
${config.WHITELIST ? config.WHITELIST.map(domain => `
<div class="domain-item">
<span class="domain-text">${domain}</span>
</div>
`).join('') : ''}
</div>
</div>
</div>
@@ -341,13 +314,12 @@ function initConfigPage() {
chrome.tabs.query({active: true, currentWindow: true}, (tabs) => {
if (tabs[0]) {
chrome.tabs.sendMessage(tabs[0].id, {type: 'GET_CONFIG'}, response => {
if (chrome.runtime.lastError) {
displayConfig(null);
if (chrome.runtime.lastError || !response || !response.config) {
const container = document.querySelector('.config-page .container');
container.innerHTML = '<div class="error">请刷新页面后重试</div>';
return;
}
const { config } = response;
displayConfig(config);
displayConfig(response.config);
});
}
});