-
-
Notifications
You must be signed in to change notification settings - Fork 7.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bug fixes V2.1 #467
Bug fixes V2.1 #467
Conversation
plugins/twitter.py
Outdated
msg = await event.eor("🔍 `Getting tweet details...`") | ||
try: | ||
client = await get_client() | ||
if "twitter.com" in match or "x.com" in match: |
Check failure
Code scanning / CodeQL
Incomplete URL substring sanitization High
twitter.com
This autofix suggestion was applied.
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix AI 9 days ago
To fix the problem, we need to parse the URL and check the hostname to ensure it matches "twitter.com" or "x.com" correctly. This will prevent malicious URLs from bypassing the check by embedding the allowed hostnames in unexpected locations.
- Use the
urlparse
function from theurllib.parse
module to parse the URL. - Extract the hostname from the parsed URL and check if it matches "twitter.com" or "x.com".
- Update the code in the
twitter_details
function to implement this change.
-
Copy modified lines R84-R87
@@ -83,4 +83,6 @@ | ||
client = await get_client() | ||
if "twitter.com" in match or "x.com" in match: | ||
tweet_id = match.split("/")[-1].split("?")[0] | ||
from urllib.parse import urlparse | ||
parsed_url = urlparse(match) | ||
if parsed_url.hostname in ["twitter.com", "x.com"]: | ||
tweet_id = parsed_url.path.split("/")[-1].split("?")[0] | ||
else: |
plugins/twitter.py
Outdated
msg = await event.eor("🔍 `Getting tweet details...`") | ||
try: | ||
client = await get_client() | ||
if "twitter.com" in match or "x.com" in match: |
Check failure
Code scanning / CodeQL
Incomplete URL substring sanitization High
x.com
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix AI 9 days ago
To fix the problem, we should parse the URL using urlparse
and then check the hostname to ensure it matches "twitter.com" or "x.com". This approach is more reliable than checking for substrings within the URL.
- Parse the URL using
urlparse
. - Extract the hostname from the parsed URL.
- Check if the hostname is either "twitter.com" or "x.com".
- Update the code in the
twitter_media
function to use this method.
-
Copy modified line R26 -
Copy modified lines R153-R155
@@ -25,2 +25,3 @@ | ||
import os | ||
from urllib.parse import urlparse | ||
from twikit import Client | ||
@@ -151,4 +152,5 @@ | ||
client = await get_client() | ||
if "twitter.com" in match or "x.com" in match: | ||
tweet_id = match.split("/")[-1].split("?")[0] | ||
parsed_url = urlparse(match) | ||
if parsed_url.hostname in ["twitter.com", "x.com"]: | ||
tweet_id = parsed_url.path.split("/")[-1].split("?")[0] | ||
else: |
…g sanitization Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Poll
sticker
command by using cloudscraper