core/pages/security.tsx
SKINMAKER b421d1ab64
chore: apply prettier (#637)
* chore: apply prettier

* chore: edit ready comment

* chore: move ts comment
2023-11-29 22:04:33 +09:00

103 lines
3.8 KiB
TypeScript

import { GetServerSideProps, NextPage } from 'next'
import dynamic from 'next/dynamic'
import { User } from '@types'
import { BUG_REPORTERS, BUG_REPORT_GROUPS } from '@utils/Constants'
import { get } from '@utils/Query'
const Docs = dynamic(() => import('@components/Docs'))
const DiscordAvatar = dynamic(() => import('@components/DiscordAvatar'))
const Button = dynamic(() => import('@components/Button'))
const BODY = '중요도:\n설명:\n\n영향을 줄 수 있는 경우:'
const Security: NextPage<SecurityProps> = ({ bugReports }) => {
return (
<Docs
header='버그 바운티 프로그램'
description='한국 디스코드 리스트는 보안을 최우선으로 생각합니다.'
>
<h1 className='mb-3 text-3xl font-bold text-koreanbots-blue'></h1>
<p>
.
.
</p>
<h1 className='mb-3 mt-6 text-3xl font-bold text-koreanbots-blue'></h1>
<ul className='list-inside list-disc'>
<li>
.
.
</li>
<li>
. ) ,
DDoS, DoS
</li>
<li> .</li>
<li>
3 / .
</li>
<li> .</li>
</ul>
<h1 className='mb-3 mt-6 text-3xl font-bold text-koreanbots-blue'></h1>
<ul className='list-inside list-disc'>
{['koreanbots.dev 및 *.koreanbots.dev', 'kbots.link', '디스코드.한국'].map((el) => (
<li key={el}>{el}</li>
))}
</ul>
<h1 className='mb-3 mt-6 text-3xl font-bold text-koreanbots-blue'>
</h1>
<ul className='list-inside list-disc'>
<li> </li>
<li>Brute force </li>
<li>Clickjacking</li>
<li>DoS </li>
<li> (Self XSS )</li>
</ul>
<h1 className='mb-3 mt-6 text-3xl font-bold text-koreanbots-blue'>
</h1>
<div className='flex flex-wrap'>
{bugReports
.filter((el) => el)
.map((u) => (
<div key={u.id} className='mr-2.5 flex items-center'>
<DiscordAvatar userID={u.id} size={128} className='mr-1 h-6 w-6 rounded-full' />
<span className='text-base font-semibold dark:text-gray-300'>
{u.globalName} {`(@${u.username})`}
</span>
</div>
))}
</div>
<ul className='mt-2 flex list-inside list-disc flex-wrap'>
{BUG_REPORT_GROUPS.map((g, i) => (
<li key={i} className='text-base font-semibold dark:text-gray-300'>
{g}
</li>
))}
</ul>
<div className='py-36 text-center'>
<h1 className='mb-6 text-3xl font-bold'> ?</h1>
<Button href={`mailto:team@koreanbots.dev?subject=[Security] &body=${encodeURI(BODY)}`}>
</Button>
</div>
</Docs>
)
}
export const getServerSideProps: GetServerSideProps<SecurityProps> = async () => {
return {
props: {
bugReports: await Promise.all(BUG_REPORTERS.map((u) => get.user.load(u))),
},
}
}
export default Security
interface SecurityProps {
bugReports: User[]
}