Added Chrome extension
This commit is contained in:
89
Chrome/Code/content.js
Normal file
89
Chrome/Code/content.js
Normal file
@@ -0,0 +1,89 @@
|
||||
// content.js - Content script that runs on web pages (Chrome-optimized)
|
||||
|
||||
function extractSQLQuery() {
|
||||
// Look for the specific input element
|
||||
const sqlInput = document.getElementById('SQLStatementHide');
|
||||
|
||||
if (sqlInput) {
|
||||
const sqlQuery = sqlInput.value;
|
||||
if (sqlQuery && sqlQuery.trim()) {
|
||||
return cleanupSQLQuery(sqlQuery.trim());
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// Fallback: look for any input with name="SQLStatementHide"
|
||||
const sqlInputByName = document.querySelector('input[name="SQLStatementHide"]');
|
||||
if (sqlInputByName) {
|
||||
const sqlQuery = sqlInputByName.value;
|
||||
if (sqlQuery && sqlQuery.trim()) {
|
||||
return cleanupSQLQuery(sqlQuery.trim());
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
function cleanupSQLQuery(sqlQuery) {
|
||||
// Fix double single quotes around dates/values (''2017-10-23'' becomes '2017-10-23')
|
||||
// This handles the common issue where systems incorrectly double-escape quotes
|
||||
return sqlQuery.replace(/''/g, "'");
|
||||
}
|
||||
|
||||
// Listen for messages from popup
|
||||
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
|
||||
if (request.action === "extractSQL") {
|
||||
const sqlQuery = extractSQLQuery();
|
||||
sendResponse({
|
||||
success: sqlQuery !== null,
|
||||
sqlQuery: sqlQuery,
|
||||
url: window.location.href,
|
||||
timestamp: new Date().toISOString()
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// Optional: Add a visual indicator when SQL is found
|
||||
function addVisualIndicator() {
|
||||
const sqlInput = document.getElementById('SQLStatementHide') ||
|
||||
document.querySelector('input[name="SQLStatementHide"]');
|
||||
|
||||
if (sqlInput && sqlInput.value && sqlInput.value.trim()) {
|
||||
// Add a small visual indicator that SQL was found
|
||||
if (!document.getElementById('sql-extractor-indicator')) {
|
||||
const indicator = document.createElement('div');
|
||||
indicator.id = 'sql-extractor-indicator';
|
||||
indicator.style.cssText = `
|
||||
position: fixed;
|
||||
top: 10px;
|
||||
right: 10px;
|
||||
background: #4CAF50;
|
||||
color: white;
|
||||
padding: 5px 10px;
|
||||
border-radius: 3px;
|
||||
font-size: 12px;
|
||||
z-index: 10000;
|
||||
font-family: Arial, sans-serif;
|
||||
opacity: 0.8;
|
||||
pointer-events: none;
|
||||
`;
|
||||
indicator.textContent = 'SQL Query Found';
|
||||
document.body.appendChild(indicator);
|
||||
|
||||
// Remove indicator after 3 seconds
|
||||
setTimeout(() => {
|
||||
if (document.getElementById('sql-extractor-indicator')) {
|
||||
document.body.removeChild(indicator);
|
||||
}
|
||||
}, 3000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Run indicator check when page loads
|
||||
if (document.readyState === 'loading') {
|
||||
document.addEventListener('DOMContentLoaded', addVisualIndicator);
|
||||
} else {
|
||||
addVisualIndicator();
|
||||
}
|
||||
Reference in New Issue
Block a user