core/pages/security.tsx
SKINMAKER 5d41ada703
feat: get display name on query (#565)
* feat: get display name on query

* chore: use global_name instead of display_name

* feat: show username on Owner

* chore: remove unused import

* feat: user page

* chore: remove logging

* feat: navbar

* feat: Seo

* feat: logging

* feat: addbot

* feat: security credit

* feat: report

* feat: transfer owner

* feat: seo

* feat: report

* chore: do not get channel from guild

* chore: remove displayname

* chore: remove unused import
2023-06-10 22:29:51 +09:00

81 lines
3.6 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='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.globalName} {`(@${u.username})`}</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: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[]
}