core/pages/security.tsx

79 lines
3.5 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 Security: NextPage<SecurityProps> = ({ bugReports }) => {
return <Docs
header='버그 바운티 프로그램'
description='한국 디스코드봇 리스트는 보안을 최우선으로 생각합니다.'
>
<h1 className='mb-3 text-3xl font-bold text-koreanbots-blue'></h1>
<p> . .</p>
<h1 className='mt-6 mb-3 text-3xl font-bold text-koreanbots-blue'></h1>
<ul className='list-disc list-inside'>
<li> . .</li>
<li> . ) , DDoS, DoS </li>
<li> .</li>
<li> 3 / .</li>
<li> .</li>
</ul>
<h1 className='mt-6 mb-3 text-3xl font-bold text-koreanbots-blue'></h1>
<ul className='list-disc list-inside'>
{
['koreanbots.dev 및 *.koreanbots.dev', 'kbots.link', '디스코드.한국'].map(el => <li key={el}>{el}</li>)
}
</ul>
<h1 className='mt-6 mb-3 text-3xl font-bold text-koreanbots-blue'> </h1>
<ul className='list-disc list-inside'>
<li> </li>
<li>Brute force </li>
<li>Clickjacking</li>
<li>DoS </li>
<li> (Self XSS )</li>
</ul>
<h1 className='mt-6 mb-3 text-3xl font-bold text-koreanbots-blue'> </h1>
<div className='flex flex-wrap'>
{
bugReports.filter(el=>el).map(u =>
<div key={u.id} className='flex items-center mr-2.5'>
<DiscordAvatar userID={u.id} size={128} className='rounded-full w-6 h-6 mr-1' />
<span className='text-base font-semibold dark:text-gray-300'>{u.username}#{u.tag}</span>
</div>
)
}
</div>
<ul className='flex flex-wrap mt-2 list-disc list-inside'>
{
BUG_REPORT_GROUPS.map((g, i) => <li key={i} className='text-base font-semibold dark:text-gray-300'>
{g}
</li>
)
}
</ul>
<div className='text-center py-36'>
<h1 className='text-3xl font-bold mb-6'> ?</h1>
<Button href='mailto:koreanbots.dev@gmail.com'></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[]
}