What is Hackers' Pub?

Hackers' Pub is a place for software engineers to share their knowledge and experience with each other. It's also an ActivityPub-enabled social network, so you can follow your favorite hackers in the fediverse and get their latest posts in your feed.

0
0
0
0

4์ฃผ ์ „์— ์ฃผ๊ฐ„์‹ ์ดˆ์˜ ์ปฌ๋Ÿผ์—์„œ ์ž์ด๋‹ˆ์น˜ ํ˜์˜ค๋ฐœ์–ธ์ด ์‹ค๋ ค ๋…ผ๋ž€์ด ๋˜๊ณ  ํŠนํžˆ ์—ฌ๋Ÿฌ ์ž‘๊ฐ€๋“ค์ด ๊ณต๊ฐœ์ ์œผ๋กœ ๋น„ํŒ ์„ฑ๋ช…์„ ํ–ˆ์—ˆ๋Š”๋ฐ, ๋“œ๋””์–ด ๋ฌธ์ œ์˜ ์ปฌ๋Ÿผ์ด ํ์ง€๋˜์—ˆ๋‹ค๊ณ . digital.asahi.com/articles/AST
ํ•ด๋‹น ์ปฌ๋Ÿผ์€ ๊ณผ๊ฑฐ์—๋„ ์—ฌ๋Ÿฌ ์ฐจ๋ก€ ์ฐจ๋ณ„ ๋ฐœ์–ธ์ด ์žˆ์—ˆ์ง€๋งŒ ๋ณ„ ๋ฌธ์ œ ์—†์ด ์—ฐ์žฌ๊ฐ€ ์ด์–ด์ ธ ์™”๋Š”๋ฐ, ์ด๋ฒˆ์—๋Š” ์ง‘๋‹จ ์„ฑ๋ช…์œผ๋กœ ๊ณต๋ก ํ™”๊ฐ€ ๋˜์–ด ์–ธ๋ก ์—๋„ ์‹ค๋ฆฌ๊ฒŒ ๋˜์–ด์„œ ๊ทธ๋ƒฅ ๋„˜์–ด๊ฐ€์ง€ ๋ชปํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

0
0
1
0
1
1

Overlays are often used in Android malware.
They are actually a burden to other domains such as browser extensions. This research, by Marek Toth, shows how click jacking [on hidden overlays] can trick the end-user in sharing his/her entire password manager.

marektoth.com/blog/dom-based-e

If you prefer to read a curated version in French: infosec.exchange/@nono2357/115

0
0
0
1
1
1
0

"Open standards and open source technologies are are essential for a resilient digital landscape." โ€” Pernille Tranberg, Independent advisor in data and AI ethics

๐Ÿ‡ซ๐Ÿ‡ฎ, ๐Ÿ‡ฉ๐Ÿ‡ช, ๐Ÿ‡ณ๐Ÿ‡ฑ, ๐Ÿ‡ซ๐Ÿ‡ท and ๐Ÿ‡จ๐Ÿ‡ญ top the Digital Sovereignty Index. How did they achieve that?

dsi.nextcloud.com/report.php

@pernilletPernille Tranberg โœ”๏ธ

0
0
0
0
0

ใ€Œใ“ใ‚‰๏ผใ‚นใƒžใƒ›ใฏ1ๆ—ฅ2ๆ™‚้–“ใพใงใงใ—ใ‚‡๏ผใ€
ใ€Œใ„ใ‚„๏ผใ ใฃใฆใ“ใ‚Œ
โ€‹:raspberrypi:โ€‹ใ ใ—๏ผ๏ผใ€
ๆ„›็Ÿฅ็œŒใฎ็š†ใ•ใ‚“ใ€
โ€‹:raspberrypi:โ€‹ใงๆกไพ‹ใฎๆŠœใ‘็ฉดใ€ใ‚„ใ‚Šใพใ›ใ‚“ใ‹๏ผˆใ‚คใ‚ฑใƒœ๏ผ‰

1
0

ๆกไพ‹ใฏๆณ•ๅพ‹ใปใฉๅŽณใ—ใใชใ„ใจใ„ใ†่ช่ญ˜ใชใ‚“ใ ใ‘ใฉใ€ใใ‚Œใซใ—ใฆใ‚‚้•ๅใฏ้•ๅใชใฎใง็ฝชใ‚’็Šฏใ—ใชใŒใ‚‰็”Ÿใใฆใ„ใ‚‹ใจใ„ใ†็ฝชๆ‚ชๆ„Ÿใ‚’ๆ„Ÿใ˜ใชใŒใ‚‰็”Ÿๆดปใ—ใชใ‘ใ‚Œใฐใชใ‚‰ใชใ„ใ“ใจใซใชใ‚‹โ€‹:tanuki_daradara:โ€‹

0
0

่’ธ็š„่ฝฏ่ฝฏ็š„่ŠๅฃซไธŽ้ขๅŒ…ๆญ้…๏ผŒๅ—ฏโ€ฆๅฌ่ตทๆฅๆœ‰็‚นไธ้”™๏ผŸ๏ผŸ๏ผŸ๐Ÿค”๐Ÿค”๐Ÿค”

RE:
https://misskey.io/notes/aboqfst4ab3u02sg

1
0
0
0
0

I'm so incredibly honoured and proud that Japanese newspaper The Mainichi has published one of my most powerful and loving haiku ever. Especially in this day and age where transpeople do not feel safe any more and are even losing their jobs and/or fleeing their country.

mainichi.jp/english/articles/2

+ ๐ŸŒˆ :lgbt: :rainbow_heart:

@poetrypoetry group

@haikuhaiku group

0

์–ผ๋งˆ ์ „, UX/UI ๋‹จํ†ก๋ฐฉ์—
2๋…„์ฐจ ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž ํ•œ ๋ถ„์ด ๋“ค์–ด์˜ค์…จ์–ด.

ํ˜ผ์ž์„œ ํ™”๋ฉด ๊ธฐํš๋ถ€ํ„ฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„๊นŒ์ง€ ๋‹ค ํ•˜๊ณ  ๊ณ„์…จ๋Š”๋ฐ,
์ ์  โ€œ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ๋” ์“ฐ๊ธฐ ํŽธํ• ๊นŒ?โ€๋ฅผ ๊ณ ๋ฏผํ•˜๊ฒŒ ๋˜์…จ๋Œ€.

์ฑ…์€ ์กฐ๊ธˆ์”ฉ ๋ณด๊ณ  ์žˆ์ง€๋งŒ,
์ •์ž‘ ์–ด๋–ป๊ฒŒ ์‹œ์ž‘ํ•ด์•ผ ํ• ์ง€ ๋ง‰๋ง‰ํ•˜๋‹ค๊ณ ...๐Ÿ˜“

๊ทธ๋ž˜์„œ ๋‹จํ†ก๋ฐฉ์—์„œ ์งˆ๋ฌธ์„ ๋‚จ๊ธฐ์…จ๋Š”๋ฐ
์‹ ์ž… ๋””์ž์ด๋„ˆ, ํ˜„์—… ๋””์ž์ด๋„ˆ, ๊ธฐํš์ž, ๊ฐœ๋ฐœ์ž๊นŒ์ง€

์ง„์งœ ๋‹ค์–‘ํ•œ ๋ถ„๋“ค์ด ์ž๊ธฐ ๊ฒฝํ—˜์„ ๋ฐ”ํƒ•์œผ๋กœ
์กฐ์–ธ์„ ๊พน๊พน ๋ˆŒ๋Ÿฌ ๋‹ด์•„์คฌ์–ด.

๋งŒ์•ฝ ์ด ๊ฐœ๋ฐœ์ž๋ถ„ ์ฒ˜๋Ÿผ UX/UI ๊ณ ๋ฏผ ์ค‘์ด๋ผ๋ฉด,
ํ•œ๋ฒˆ ์ฐธ์—ฌํ•ด์„œ ๋„์›€์„ ์–ป์–ด๋ด!

๋Œ“๊ธ€์— ๋งํฌ ๋‚จ๊ฒจ๋‘˜๊ฒŒ!

0

๊ธฐ๋ก์  ํญ์—ผ์ด ๋’ค์ง‘์€ ๊ณค์ถฉ ์ง€๋„ "๋ฒŒ ์Šต๊ฒฉ ๋Š˜๊ณ  ๋ชจ๊ธฐ๋Š” ์‚ฌ๋ผ์ ธ":
8์›” ๋ง์— ์ ‘์–ด๋“ค์—ˆ๋Š”๋ฐ๋„ ์—ฐ์ผ ์ด์–ด์ง€๋Š” ํญ์—ผ์ด ์šฐ๋ฆฌ ์ฃผ๋ณ€ ๊ณค์ถฉ ์ƒํƒœ๊ณ„๋ฅผ ๊ธ‰๊ฒฉํžˆ ๋ฐ”๊ฟ”๋†“๊ณ  ์žˆ๋‹ค. ๋ชจ๊ธฐ๋Š” ์ž์ทจ๋ฅผ ๊ฐ์ถ˜ ๋Œ€์‹  ๋ฒŒ ์˜์ž„ ์‚ฌ๊ณ ๊ฐ€ ํฌ๊ฒŒ ๋Š˜์–ด๋‚˜๋Š” ์ƒ๋ฐ˜๋œ ํ˜„์ƒ์ด ๋‚˜ํƒ€๋‚˜๊ณ  ์žˆ๋‹ค. ๋ฒŒ ์˜์ž„ ํ™˜์ž ๋งค๋…„ ์ฆ๊ฐ€โ€ฆ 8์›”์— ์ง‘์ค‘20์ผ ํ–‰์ •์•ˆ์ „๋ถ€ ๋ฐœํ‘œ์— ๋”ฐ๋ฅด๋ฉด 2020๋…„๋ถ€ํ„ฐ 2024๋…„๊นŒ์ง€ ๋ฒŒ์— ์˜์—ฌ ์น˜๋ฃŒ๋ฐ›์€ ํ™˜์ž๋Š” ์ด 91,401๋ช…์— ๋‹ฌํ–ˆ๋‹ค. 2020๋…„ 15,118๋ช…, 2021๋…„ 17,577๋ช…, 2022๋…„ 21,117๋ช…, 2023๋…„ 17,678๋ช…, 2024๋…„ 19,911๋ช…์œผ๋กœ, 2023๋…„์„ ์ œ์™ธํ•˜๊ณ ๋Š” ์ง€์†์ ์ธ ์ฆ๊ฐ€์„ธ์— ์žˆ๋‹ค. ์ž‘๋…„์—๋งŒ 2020
newspenguin.com/news/articleVi
(2025-08-21 17:38:38)

0
1

์˜ค๋Š˜์˜ ์„œ์ปค์Šค ๋‚ด์šฉ ์„ธ์…˜์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š”๋ฐ ์„ธ์…˜์˜ ์•ฑ์€ ApplicationGrants๋ฅผ ๋ฐ›์•„์•ผ ํ•˜๊ณ  ์„ธ์…˜์˜ ํ”„๋กœํ•„ ID๋Š” ApplicationGrantProfiles์œผ๋กœ ํ”„๋กœํ•„๋ณ„ ์Šน์ธ์„ ๋ฐ›๊ฑฐ๋‚˜ ์ „์ฒด ํ”„๋กœํ•„ ์Šน์ธ(ApplicationGrantProfiles.profileId == null)์„ ๋ฐ›์•ผ์•„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š”๋ฐ ์„ธ์…˜์˜ ํ”„๋กœํ•„์„ ํ—ค๋”๋กœ ์˜ค๋ฒ„๋ผ์ด๋“œํ•  ์ˆ˜ ์žˆ๊ณ  ์˜ค๋ฒ„๋ผ์ด๋“œ๋œ ํ”„๋กœํ•„ ์—ญ์‹œ ์œ„ ์กฐ๊ฑด์„ ์ง€ํ‚ค๋Š” ๊ฒฝ์šฐ๋งŒ ๋ฆฌํ„ด๋˜๊ฒŒ ํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์งฐ์–ด์š”

const headerProfileId = c.req.header('X-Actor-Profile-Id');
    const session = await db
      .select({
        id: Sessions.id,
        applicationId: Sessions.applicationId,
        accountId: Sessions.accountId,
        scopes: Sessions.scopes,
        languages: Accounts.languages,
        profileId: Profiles.id,
      })
      .from(Sessions)
      .innerJoin(Accounts, eq(Sessions.accountId, Accounts.id))
      .innerJoin(ApplicationGrants, eq(Sessions.applicationId, ApplicationGrants.applicationId))
      .leftJoin(
        ApplicationGrantProfiles,
        eq(ApplicationGrants.id, ApplicationGrantProfiles.applicationGrantId),
      )
      .leftJoin(
        Profiles,
        and(
          eq(Profiles.id, headerProfileId ?? Sessions.profileId),
          eq(Profiles.state, ProfileState.ACTIVE),
          isNotNull(ApplicationGrantProfiles.id),
          or(
            eq(ApplicationGrantProfiles.profileId, Profiles.id),
            isNull(ApplicationGrantProfiles.profileId),
          ),
        ),
      )
      .where(eq(Sessions.token, accessToken))
      .limit(1)
      .then(first);
1

SQL ์กฐ์ธ ์„œ์ปค์Šค๊ฐ€ ์ง„์งœ ๋จธ๋ฆฌ์•„ํ”ˆ๋ฐ ์ง„์งœ ์žฌ๋ฐŒ์–ด์„œ ์ด๊ฑฐ๋งŒํผ์€ ์†์œผ๋กœ ์งœ๊ณ  ์‹ถ์–ด

์˜ค๋Š˜์˜ ์„œ์ปค์Šค ๋‚ด์šฉ ์„ธ์…˜์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š”๋ฐ ์„ธ์…˜์˜ ์•ฑ์€ ApplicationGrants๋ฅผ ๋ฐ›์•„์•ผ ํ•˜๊ณ  ์„ธ์…˜์˜ ํ”„๋กœํ•„ ID๋Š” ApplicationGrantProfiles์œผ๋กœ ํ”„๋กœํ•„๋ณ„ ์Šน์ธ์„ ๋ฐ›๊ฑฐ๋‚˜ ์ „์ฒด ํ”„๋กœํ•„ ์Šน์ธ(ApplicationGrantProfiles.profileId == null)์„ ๋ฐ›์•ผ์•„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š”๋ฐ ์„ธ์…˜์˜ ํ”„๋กœํ•„์„ ํ—ค๋”๋กœ ์˜ค๋ฒ„๋ผ์ด๋“œํ•  ์ˆ˜ ์žˆ๊ณ  ์˜ค๋ฒ„๋ผ์ด๋“œ๋œ ํ”„๋กœํ•„ ์—ญ์‹œ ์œ„ ์กฐ๊ฑด์„ ์ง€ํ‚ค๋Š” ๊ฒฝ์šฐ๋งŒ ๋ฆฌํ„ด๋˜๊ฒŒ ํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์งฐ์–ด์š”

const headerProfileId = c.req.header('X-Actor-Profile-Id');
    const session = await db
      .select({
        id: Sessions.id,
        applicationId: Sessions.applicationId,
        accountId: Sessions.accountId,
        scopes: Sessions.scopes,
        languages: Accounts.languages,
        profileId: Profiles.id,
      })
      .from(Sessions)
      .innerJoin(Accounts, eq(Sessions.accountId, Accounts.id))
      .innerJoin(ApplicationGrants, eq(Sessions.applicationId, ApplicationGrants.applicationId))
      .leftJoin(
        ApplicationGrantProfiles,
        eq(ApplicationGrants.id, ApplicationGrantProfiles.applicationGrantId),
      )
      .leftJoin(
        Profiles,
        and(
          eq(Profiles.id, headerProfileId ?? Sessions.profileId),
          eq(Profiles.state, ProfileState.ACTIVE),
          isNotNull(ApplicationGrantProfiles.id),
          or(
            eq(ApplicationGrantProfiles.profileId, Profiles.id),
            isNull(ApplicationGrantProfiles.profileId),
          ),
        ),
      )
      .where(eq(Sessions.token, accessToken))
      .limit(1)
      .then(first);
3
1
0

์ œ ์นœ๊ตฌ @Hailey์™€ @juja๊ฐ€ 9์›” 5์ผ๋ถ€ํ„ฐ 7์ผ๊นŒ์ง€ ์ œ์ฃผ ๋ ˆ์ € ํž๋ง ํŽ˜์Šคํ‹ฐ๋ฒŒ์„ ์ฃผ์ตœํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ๊ณ  ์žˆ์–ด์š”! ๋‚˜์™€์„œ ๋†€์•„์š”!

My friends @Hailey and @juja are helping host the Jeju Leisure Healing Festival from September 5th to 7th! Come out and play!

jejulhfestival.kr/

2025 ์ œ์ฃผ ๋ ˆ์ € ํž๋ง ํŽ˜์Šคํ‹ฐ๋ฒŒ์˜ ํ™๋ณด ํฌ์Šคํ„ฐ๋กœ, ์• ๋‹ˆ๋ฉ”์ด์…˜ ์บ๋ฆญํ„ฐ์˜ ์ƒ์ƒํ•œ ๊ทธ๋ž˜ํ”ฝ๊ณผ ์„œํ•‘, ํ•ด๋ณ€์—์„œ์˜ ๋ฌผ๋†€์ด ๋“ฑ์„ ์„ ๋ณด์ž…๋‹ˆ๋‹ค. ํ–‰์‚ฌ๋Š” 2025๋…„ 9์›” 5์ผ๋ถ€ํ„ฐ 7์ผ๊นŒ์ง€ ์˜ˆ์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.์•ˆ๊ฒฝ์„ ์“ฐ๊ณ  ๊ฒ€์€ ์กธ์—… ๋ชจ์ž๋ฅผ ์“ด ๋งŒํ™” ๊ฐ™์€ ํฐ ์ˆ˜์—ผ์˜ ์ธ๋ฌผ์ด ํ™ฉ๊ธˆ ์‚ผ์ง€์ฐฝ์„ ๋“ค๊ณ  ์žˆ๋‹ค.
0
1
0

์ œ ์นœ๊ตฌ @Hailey์™€ @juja๊ฐ€ 9์›” 5์ผ๋ถ€ํ„ฐ 7์ผ๊นŒ์ง€ ์ œ์ฃผ ๋ ˆ์ € ํž๋ง ํŽ˜์Šคํ‹ฐ๋ฒŒ์„ ์ฃผ์ตœํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ๊ณ  ์žˆ์–ด์š”! ๋‚˜์™€์„œ ๋†€์•„์š”!

My friends @Hailey and @juja are helping host the Jeju Leisure Healing Festival from September 5th to 7th! Come out and play!

jejulhfestival.kr/

2025 ์ œ์ฃผ ๋ ˆ์ € ํž๋ง ํŽ˜์Šคํ‹ฐ๋ฒŒ์˜ ํ™๋ณด ํฌ์Šคํ„ฐ๋กœ, ์• ๋‹ˆ๋ฉ”์ด์…˜ ์บ๋ฆญํ„ฐ์˜ ์ƒ์ƒํ•œ ๊ทธ๋ž˜ํ”ฝ๊ณผ ์„œํ•‘, ํ•ด๋ณ€์—์„œ์˜ ๋ฌผ๋†€์ด ๋“ฑ์„ ์„ ๋ณด์ž…๋‹ˆ๋‹ค. ํ–‰์‚ฌ๋Š” 2025๋…„ 9์›” 5์ผ๋ถ€ํ„ฐ 7์ผ๊นŒ์ง€ ์˜ˆ์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.์•ˆ๊ฒฝ์„ ์“ฐ๊ณ  ๊ฒ€์€ ์กธ์—… ๋ชจ์ž๋ฅผ ์“ด ๋งŒํ™” ๊ฐ™์€ ํฐ ์ˆ˜์—ผ์˜ ์ธ๋ฌผ์ด ํ™ฉ๊ธˆ ์‚ผ์ง€์ฐฝ์„ ๋“ค๊ณ  ์žˆ๋‹ค.
0
0
0
0
1

ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‚’็ ”็ฉถไปฒ้–“ใซๅ…ฑไฝใ™ใ‚‹ใ“ใจใซใชใฃใŸใ‚“ใ ใ‘ใฉใ€ใ‚‚ใ†ใชใ‚“ใจใ„ใ†ใ‹ใ€README.mdใฏใ€GPTใซๆ›ธใ„ใฆใ‚‚ใ‚‰ใ†ใปใ†ใŒๅœงๅ€’็š„ใซๆฅฝใชใฎใญใ€‚

่ˆˆๅ‘ณใŒใ‚ใ‚‹ไบบใฏ้Šใ‚“ใงใฟใฆใ€‚

github.com/ttrace/chat-command

0
0
0

์˜ค๋Š˜์€ ์˜ค๋žœ๋งŒ์— Hackers' Pub์˜ web-next ์ž‘์—…. ํ”„๋กœํ•„ ์„ค์ • ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค์—ˆ๋‹ค. Relay๋ฅผ ์“ฐ๋‹ˆ๊นŒ ๋ฎคํ…Œ์ด์…˜ํ•˜๊ณ  ๋‚˜์„œ ๋‚ด๊ฐ€ ๋”ฑํžˆ ๋ญ˜ ํ•˜์ง€ ์•Š์•„๋„ ์ž๋™์œผ๋กœ ์ƒํƒœ๊ฐ€ ์—…๋ฐ์ดํŠธ๋œ๋‹ค!

2
1
0

A couple of weeks ago, someone emailed me some personal files and videos I have forgotten I have left somewhere on my VPS.

In this video I'll show a common tool for finding these files: ffuf

youtu.be/sdfCxvp6rCs

0