Files
imagegen-tools/src/lib/server/prompt-moderation.ts
T

238 lines
2.7 KiB
TypeScript

const prohibitedWords = `裸聊
自杀
杀人
贩毒
枪支
炸药
分尸
色情
淫秽
裸体
做爱
性交
口交
抽插
肛交
射精
迷奸
幼女
援交
卖淫
裸照
nude
naked
porn
xxx
sex(ual)
erotic
incest
underage
bestiality
sexual
发情
高潮
阴道
阴茎
乳房
屁股
淫水
催情
乱伦
捆绑
虐待
兽交
轮奸
鸡巴
操你
干你
骚货
贱货
荡妇
婊子
约炮
直播做爱
成人影片
成人视频
成人电影
皇色
簧色
嗨粉
吸白
溜冰
啪啪啪
18禁
工口
里番
nsfw
fuck
shit
dick
pussy
bitch
whore
slut
molest
hentai
bondage
bdsm
sperm
ejaculate
碎尸
肢解
吃人
活埋
凌迟
割喉
斩首
焚烧
torture
murder
decapitate
毒品
冰毒
海洛因
大麻
可卡因
制毒
吸毒
赌博
赌场
开赌
诈骗
骗钱
钓鱼
盗号
黑客
木马
病毒
入侵
破解
盗版
steal credentials
dump passwords
extract tokens
exfiltrate
ransomware
trojan
backdoor
botnet
keylogger
infostealer
免杀
绕过杀软
绕过edr
bypass av
bypass defender
bypass edr
reverse shell
bind shell
meterpreter
web shell
反弹shell
提权
privilege escalation
privesc
root exploit
persistence
registry run key
exploit payload
shellcode
rop chain
buffer overflow
zero-day
0day
漏洞利用
攻击载荷
proof of concept
注册机
keygen
crack license
license bypass
绕过授权
破解授权
序列号生成
数据窃取
data exfiltration
steal data
数据外泄
lsass dump
credential dumping
hashdump
sam dump
reverse engineering
ida pro
ghidra
x64dbg
ollydbg
frida
frida hook
反编译
脱壳
逆向
容器逃逸
container escape
docker breakout
kubernetes escape
sandbox escape
zero-click
zero click
supply chain attack
依赖投毒
malicious package
trojanized package
ddos
拒绝服务攻击
dos attack
cryptojacking
非法挖矿
挖矿劫持
process injection
dll injection
fileless malware
log tampering
anti-forensics
command injection
sql injection
xss payload
path traversal
ssrf
xxe
lateral movement
横向移动
token theft
jwt hijacking
api key leak
cloud credential
aws key leak
azure token
hardware implant
usb rubber ducky
恶意usb
firmware backdoor
bios rootkit
kernel exploit
内核提权
phishing
钓鱼页面
credential harvesting
fake login
渗透`
.split("\n")
.map(normalizeForMatching)
.filter(Boolean);
export function findProhibitedWords(...prompts: Array<string | undefined>) {
const normalizedPrompt = prompts
.filter((prompt): prompt is string => Boolean(prompt))
.map(normalizeForMatching)
.join("\n");
if (!normalizedPrompt) return [];
return prohibitedWords.filter((word) => normalizedPrompt.includes(word));
}
function normalizeForMatching(value: string) {
return value.normalize("NFKC").toLocaleLowerCase("en-US").trim();
}