Just launched my portfolio π
Focused on clean UI, smooth interactions, and performance.
Really paid attention to the details on this one.
Check it out: https://t.co/FabkXYh1VF
Feedback is welcome π
#webdev#buildinpublic
Just launched my portfolio π
Focused on clean UI, smooth interactions, and performance.
Really paid attention to the details on this one.
Check it out: https://t.co/FabkXYh1VF
Feedback is welcome π
#webdev#buildinpublic
@SumitM_X Option B is the correct one.
Option A mutates the state directly using .push(). Since the array reference stays the same, Reactβs shadow comparison won't detect a change, and the UI won't re-render.
Option B uses the spread operator to create a new array.
@chux13786509 Bcrypt timing attack. The response time difference gives away the username every time. π
Timing side channel. If it returns fast, user doesn't exist. If it's slow, user exists. Easy enumeration.
the way line 26 just skips the hash comparison... enumeration goes brrrr π