This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # You analyze git history first: | |
| # git log --format=format: --name-only | | |
| # grep -E '\.py$' | sort | uniq -c | sort -rn | |
| # Results show PaymentProcessor changed 47 times this month | |
| # And it does not have good enough coverage | |
| # LegacyAuthenticator: 0 changes in 3 years | |
| # Focus on the actual hotspot: | |
| class PaymentProcessor: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # This authentication module hasn't changed in 3 years | |
| # It's deprecated and will be removed next quarter | |
| # But you spend a week "improving" it | |
| class LegacyAuthenticator: | |
| def authenticate(self, user, pwd): | |
| # Original messy code from 2019 | |
| if user != None: | |
| if pwd != None: | |
| if len(pwd) > 5: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import unicodedata | |
| def normalize_email(email): | |
| # Convert to NFKC normalized form | |
| normalized = unicodedata.normalize('NFKC', email) | |
| # Ensure only ASCII characters | |
| try: | |
| normalized.encode('ascii') | |
| except UnicodeEncodeError: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def reset_password(email_from_ui): | |
| # email_from_ui = "victim@gmàil.com" | |
| # (attacker's Unicode address from UI) | |
| # Database with utf8mb4_unicode_ci collation | |
| # treats 'à' = 'a', so this query finds: | |
| # victim@gmail.com stored in the database | |
| cursor.execute( | |
| "SELECT * FROM users WHERE email = %s", | |
| (email_from_ui,) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| final class UserRepository { | |
| private Database $database; | |
| public function __construct(Database $database) { | |
| $this->database = $database; | |
| } | |
| public function find(UserId $id): User { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| class UserRepository { | |
| public function find($id){ | |
| $conn = mysqli_connect( | |
| "localhost", // Pull Request comment - Bad indentation | |
| "root", | |
| "password123", | |
| "app" | |
| ); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| use PHPUnit\Framework\TestCase; | |
| final class McpMessageParserTest extends TestCase { | |
| private function invokePrivateMethod( | |
| $object, | |
| $methodName, | |
| array $parameters = [] | |
| ) { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| final class McpMessageParser { | |
| private $raw; | |
| public function parse() { | |
| // Step 5: Replace the private method call | |
| // with the new object | |
| $stripper = new CharacterStripper($this->raw); | |
| return $stripper->strip(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| final class McpMessageParser { | |
| private $raw; | |
| public function parse() { | |
| return $this->stripStrangeCharacters($this->raw); | |
| } | |
| // This is the private method me need to test |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| fn load_and_validate(max: usize) -> Result<Vec<Feature>, String> { | |
| let raw: Vec<Result<Feature, Error>> = load_features_from_db(); | |
| if raw.len() > max { | |
| return Err(format!( | |
| "too many features: {} > {}", | |
| raw.len(), max | |
| )); | |
| } | |
NewerOlder