আমি কীভাবে উইজেটের সাথে ফায়ারফক্স কুকিজ ব্যবহার করব?


15

wget --load-cookies"নেটস্কেপের কুকিজ. টেক্সট ফাইল দ্বারা মূলত ব্যবহৃত বিন্যাসে পাঠ্য ফাইল হিসাবে কুকিগুলি লোড করবে"। তবে ফায়ারফক্স তার কুকিগুলি একটি এসকিউএল ডাটাবেজে রাখে ।

ফায়ারফক্স cookies.sqliteফাইল থেকে "নেটস্কেপের কুকিজ.টেক্সট ফাইল" বের করার কোনও উপায় আছে কি ?

উত্তর:


12

এমন কুকি রফতানিকারী এক্সটেনশন রয়েছে যা আপনি কোনও কুকি.টেক্সট ফর্ম্যাট ফাইল রপ্তানি করতে ব্যবহার করতে পারেন যা উইজেটের সাথে ব্যবহার করা যেতে পারে।

বিকল্পভাবে, আপনি নিজের তৈরি করতে পারেন। কুকিগুলি দেখতে পারা যায় Options / Privacy / remove individual cookies। আপনি যে কুকিটি পরে তা খুঁজে পেতে পারেন এবং তথ্য সহ একটি টেক্সট ফাইল তৈরি করতে পারেন:

domain - The domain that created AND that can read the variable. 
flag - A TRUE/FALSE value indicating if all machines within a given domain can access the variable.  Say "true" 
path - The path within the domain that the variable is valid for.  Use / for any url
secure - A TRUE/FALSE value indicating if a secure connection with the domain is needed to access the variable. Use false to allow http://
expiration - The UNIX time that the variable will expire on.  Set something far in the future
name - The name of the variable. 
value - The value of the variable.

সুতরাং কেউ উদাহরণস্বরূপ এটির মতো দেখতে পারে:

.domain.com TRUE  / FALSE 4102358400 SESSIONID dfjdfkjsjwere090fusfdkljf

1
রপ্তানি কুকিজ ফায়ারফক্সের জন্য এক্সটেনশন কাজ জরিমানা বলে মনে হয়।
mivk

2
দুর্ভাগ্যক্রমে, এফএফ এর নতুন সংস্করণগুলি এটিকে আরও ব্যথা করতে চলেছে - এটি মাল্টিপ্রসেসকে সমর্থন করে বলে মনে হয় না এবং এটি উত্তরাধিকার হিসাবে FF 57+ এ কাজ করা বন্ধ করে দেবে।
উইমিসোহোমারসোহোয়ারসোপারসসমনিকা

9

আপনি যদি ব্যবহার করছেন wget, আপনি সম্ভবত কমান্ড লাইন থেকে আরামদায়ক। সেক্ষেত্রে ফায়ারফক্স এক্সটেনশনের পরিবর্তে আপনি একটি সাধারণ শেল স্ক্রিপ্ট ব্যবহার করতে পারেন:

extract_cookies.sh > mycookies.txt
wget --load-cookies mycookies.txt examplehost.com

আপনি https://gist.github.com/hackerb9/d382e09683a52dcac492ebcdaf1b79af থেকে extract_cookies.sh স্ক্রিপ্টটি ডাউনলোড করতে পারেন বা নিম্নলিখিতটি কেটে পেস্ট করতে পারেন:

#!/bin/sh -e
# extract_cookies.sh:
#
# Convert from Firefox's cookies.sqlite format to Netscape cookies,
# which can then be used by wget and curl. (Why don't wget and curl
# just use libsqlite if it's installed? Mysteries abound.)

# USAGE:
#
# $ extract_cookies.sh > /tmp/cookies.txt
# or
# $ extract_cookies.sh ~/.mozilla/firefox/*default*/cookies.sqlite > /tmp/cookies.txt

# USING WITH WGET:
# $ wget --load-cookies=/tmp/cookies.txt http://example.com

# USING WITH CURL:
# $ curl --cookie /tmp/cookies.txt http://example.com

# Note: If you do not specify an SQLite filename, this script will
# intelligently find it for you.
#
# A) Usually it will check all profiles under ~/.mozilla/firefox/ and
# use the cookies.sqlite that was updated most recently.
#
# B) If you've redirected stdin (with < or |) , then that will be used.


# HISTORY: I believe this is circa 2010 from:
# http://slacy.com/blog/2010/02/using-cookies-sqlite-in-wget-or-curl/
# However, that site is down now.

# Cleaned up by Hackerb9 (2017) to be more robust and require less typing.


cleanup() {
    rm -f $TMPFILE
    exit 0
}
trap cleanup  EXIT INT QUIT TERM


if [ "$#" -ge 1 ]; then
    SQLFILE="$1"
else
    if tty -s; then
    SQLFILE=$(ls -t ~/.mozilla/firefox/*/cookies.sqlite | head -1)
    else
    SQLFILE="-"     # Will use 'cat' below to read stdin
    fi
fi

if [ "$SQLFILE" != "-" -a ! -r "$SQLFILE" ]; then
    echo "Error. File $SQLFILE is not readable." >&2
    exit 1
fi

# We have to copy cookies.sqlite, because FireFox has a lock on it
TMPFILE=`mktemp /tmp/cookies.sqlite.XXXXXXXXXX`
cat "$SQLFILE" >> $TMPFILE


# This is the format of the sqlite database:
# CREATE TABLE moz_cookies (id INTEGER PRIMARY KEY, name TEXT, value TEXT, host TEXT, path TEXT,expiry INTEGER, lastAccessed INTEGER, isSecure INTEGER, isHttpOnly INTEGER);

echo "# Netscape HTTP Cookie File"
sqlite3 -separator $'\t' $TMPFILE <<- EOF
    .mode tabs
    .header off
    select host,
    case substr(host,1,1)='.' when 0 then 'FALSE' else 'TRUE' end,
    path,
    case isSecure when 0 then 'FALSE' else 'TRUE' end,
    expiry,
    name,
    value
    from moz_cookies;
EOF

cleanup

1
এটি কেবলমাত্র ব্রাউজার সেশনের সময় রাখা কুকিগুলির জন্য কাজ করে না। (সুতরাং সমস্ত অধিবেশন কুকিজ প্রবাদযুক্ত)
Krzysztof Krasoń

আমি এটিকে কার্ফায়ার বলে একটি কমান্ডে গুটিয়ে রেখেছিcurlfire http://www.example.com/এবংculfire -P newprofile http://www.example.com
এট রিগ

1
এটা অসাধারণ. মাল্টিপ্রসেস বা এফএফ এর নতুন সংস্করণগুলিতে হস্তক্ষেপ করে না এবং স্ক্রিপ্ট করা যায়।
উইমেনসোমোয়ারসসোপার্সসমনসিকা মনিকা

1

আপনি যেভাবে স্ক্লাইট ফাইলটি সন্ধান করেন তা বেশিরভাগ সিস্টেমে কাজ করে না।

এছাড়াও যদি আপনার একাধিক স্ক্লাইট ফাইল থাকে কারণ আপনার একাধিক ফায়ারফক্স প্রোফাইল রয়েছে।

সুতরাং আমি এখানে এটি কিভাবে:

সমস্ত কুকিজ.স্কাইলাইট ফাইল পান, লাইন নম্বর অনুসারে এগুলি বাছাই করুন এবং সর্বাধিক লাইনের সাথে একটিকে ধরে রাখুন যা আপনি আসলে সবচেয়ে বেশি ব্যবহার করছেন। তারপরে সেই ফাইলটির পথ ফেরান return

সুতরাং আমি আপনার লাইন এটি পরিবর্তন:

SQLFILE=$(find ~ -type f -name cookies.sqlite -exec wc -l {} \+ | sort -rn |grep -v total| head -1 |egrep -o "/.*")

মজাদার. সুতরাং ফায়ারফক্সের কোন সংস্করণটি আপনি ব্যবহার করছেন যে আমার স্ক্রিপ্টটি ডিফল্টভাবে সমস্ত প্রোফাইল খুঁজে পায় না? কুকিগুলি কোথায় সংরক্ষণ করা হচ্ছে? অবশ্যই, আপনাকে খুঁজে পেতে কোনও ব্যবহারকারীর পুরো হোম ডিরেক্টরি অনুসন্ধান করতে হবে না।
Hackerb9

আমি মনে করি যে এসকিউএলাইট ফাইলটি ব্যবহার করা ডিফল্ট করা ভুল, যা সর্বাধিক ব্যবহৃত ব্যবহৃত পরিবর্তে সর্বাধিক নিউলাইন রয়েছে। আমি প্রায়শই শ্বাস ফেলা এমন সাইট থেকে কিছু কুকিজ পেতে নিক্ষেপ ফায়ারফক্স প্রোফাইল তৈরি করব wget, সুতরাং প্রাসঙ্গিক কুকি জারটি ছোট হবে, তবে সম্প্রতি আপডেট হয়েছে। যাইহোক, ফাইলাইজ ব্যবহারের পরিবর্তে ডাটাবেসে নতুন লাইনের সংখ্যা গণনা করুন, যা বাইনারি? এটি করার জন্য আপনার আমার স্ক্রিপ্টটি খুব বেশি পরিবর্তন করার দরকার নেই; শুধু swap 'র ls -tসঙ্গে ls -S। (অথবা আপনি যদি চান তবে আমার স্ক্রিপ্টটিকে পাইপ দিয়ে ফিল্টার হিসাবে ব্যবহার করতে পারেন find)।
hackerb9
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.