CONNECT 200 ಹಿಂತಿರುಗಿಸಿದಾಗ ಮತ್ತು TLS ತಕ್ಷಣ ಡಿಕೋಡ್ ಮಾಡಲು ವಿಫಲವಾದಾಗ, ಪ್ರಮಾಣಪತ್ರಗಳು ಅಥವಾ ಸೈಫರ್‌ಗಳನ್ನು ಬದಲಿಸುವ ಮೊದಲು ಕನೆಕ್ಟರ್‌ನಲ್ಲಿನ ಗಡಿ ಬೈಟ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ.

ರಚಿಸಲಾದ ಅಧಿಕಾರ ಮೌಲ್ಯವು ಈಗಾಗಲೇ ಹೊಸ ಸಾಲಿನಲ್ಲಿ ಕೊನೆಗೊಳ್ಳಬಹುದು. ಇನ್ನೊಂದು ಸಾಲಿನ ಅಂತ್ಯ ಸೇರಿಸುವುದರಿಂದ HTTP ಹೆಡರ್‌ಗಳು ಮೊದಲೇ ಮುಗಿಯಬಹುದು, ಉದ್ದೇಶಿತ Host ಕ್ಷೇತ್ರ ಅಥವಾ ಇತರ ಸರಳ ಪಠ್ಯವನ್ನು ವಿನಂತಿಯ ಹಿಂದೆ ಬಿಡಬಹುದು.

ಕನಿಷ್ಠ HTTP/1.1 CONNECT ವಿನಂತಿ ಸಾಲುಗಳ ನಡುವೆ CRLF ಮತ್ತು ಕೊನೆಯಲ್ಲಿ ಖಾಲಿ ಸಾಲನ್ನು ಬಳಸುತ್ತದೆ:

b"CONNECT example.com:443 HTTP/1.1\r\nHost: example.com:443\r\n\r\n"

ಯಾವುದೇ ಅಧಿಕಾರ ಕ್ಷೇತ್ರವನ್ನು ಆ ಕೊನೆಯ ಖಾಲಿ ಸಾಲಿನ ಮೊದಲು ಇರಿಸಿ, ಒಳಗೆ ಸಾಲು ಮುರಿತವಿಲ್ಲದೆ. Python ನಲ್ಲಿ "\n" ಹೊಸ ಸಾಲನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ; ಬ್ಯಾಕ್‌ಸ್ಲ್ಯಾಶ್ ಮತ್ತು n ಅಕ್ಷರವನ್ನು ಹೊಂದಿರುವ ಕಚ್ಚಾ ಸ್ಟ್ರಿಂಗ್ ಪ್ರತಿನಿಧಿಸುವುದಿಲ್ಲ. ತೆಗೆದುಹಾಕಲು ಪ್ರಯತ್ನಿಸುವ ಮೊದಲು ಎನ್ಕೋಡಿಂಗ್ ಸಹಾಯಕ ಯಾವ ಬೈಟ್‌ಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ ಎಂದು ಪರಿಶೀಲಿಸಿ—ಹಳೆಯ ಸಹಾಯಕಗಳು ಸಾಲು ಮುರಿತಗಳನ್ನು ಸೇರಿಸಬಹುದಿತ್ತು.

CONNECT ಯಶಸ್ವಿಯಾದ ನಂತರ, ಆ ಉಳಿದ ಬೈಟ್‌ಗಳು ಸುರಂಗ ಪ್ರೋಟೋಕಾಲ್‌ಗೆ ಸೇರಿವೆ. ದಾರಿತಪ್ಪಿದ ಸರಳ ಪಠ್ಯವು TLS ನಿರೀಕ್ಷಿಸುವ ಸಹವರ್ತಿಗೆ ತಲುಪಬಹುದು. ಯಶಸ್ವಿ ಸ್ಥಿತಿಯು ತಪ್ಪಾಗಿ ರೂಪುಗೊಂಡ ವಿನಂತಿಯ ನಂತರ ಈಗಾಗಲೇ ಸರದಿಯಲ್ಲಿರುವ ಬೈಟ್‌ಗಳನ್ನು ಸರಿಪಡಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.

ಸ್ವೀಕಾರ ಗಡಿಯನ್ನೂ ಪರಿಶೀಲಿಸಿ. ಸಾಕೆಟ್ ಅನ್ನು TLS ಗೆ ಒಪ್ಪಿಸುವ ಮೊದಲು ಸಂಪೂರ್ಣ ಪ್ರಾಕ್ಸಿ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಓದಿ, ಭಾಗಶಃ ಓದುವಿಕೆಗಳನ್ನು ನಿರ್ವಹಿಸಿ ಮತ್ತು ಹೆಡರ್‌ಗಳ ಆಚೆ ಓದಿದ ಎಲ್ಲವನ್ನೂ ಸಂರಕ್ಷಿಸಿ. ಒಂದು ಸಾಕೆಟ್ ಓದುವಿಕೆ ಒಂದು ಪೂರ್ಣ ಸಂದೇಶವನ್ನು ಹೊಂದಿರಬೇಕೆಂದಿಲ್ಲ.

ಈ ಪಾರ್ಸರ್ ನಿಮ್ಮದಾಗಿದ್ದರೆ, ಸಂಪಾದಿತ ಬೈಟ್ ನಿರೂಪಣೆಯನ್ನು ವೈರ್ ವ್ಯಾಕರಣದೊಂದಿಗೆ ಹೋಲಿಸಿ; ಪಾಸ್‌ವರ್ಡ್ ಮರೆಮಾಡುತ್ತಾ ಉದ್ದಗಳು ಮತ್ತು ಸಾಲಿನ ಗಡಿಗಳನ್ನು ಗೋಚರವಾಗಿರಿಸಿ. ಪ್ರಾಕ್ಸಿ ಸಂಪರ್ಕ ಮಾತ್ರ ಬೇಕಾದ ಅನ್ವಯಕ್ಕೆ, ನಿರ್ವಹಿಸಲಾದ ಕನೆಕ್ಟರ್ ಈ ಫ್ರೇಮಿಂಗ್ ಕೋಡ್ ಅನ್ನು ಹೊಂದಿರುವ ಅಗತ್ಯವನ್ನು ತಪ್ಪಿಸುತ್ತದೆ.

ಸಂಬಂಧಿತ ಲೇಖನಗಳು