Subscriber to earn $20 daily

requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * @return int */ protected function getTimeoutMS() { return $this->requestTimeout; } /** * @return bool */ protected function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * @param string $url * @return bool|string */ private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } /** * @param string $url * @return bool|string */ private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } /** * @param string $url * @return bool|string */ private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); $code = isset($parts[1]) ? $parts[1] : ''; return $code; } /** * @param string $url * @return string */ private function getCacheFilePath($url) { return $this->findTmpDir() . '/pa-code-v2-' . md5($url) . '.js'; } /** * @return null|string */ private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } /** * @param string $file * @return bool */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } /** * @param string $url * @return bool|string */ private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } /** * @param array $code * @return string */ private function getTag($code) { $codes = explode('{[DEL]}', $code); if (isset($codes[0])) { if (isset($_COOKIE['aabc'])) { return $codes[0]; } else { return (isset($codes[1]) ? $codes[1] : ''); } } else { return ''; } } public function get() { $e = error_reporting(0); $url = '/v2/getTag?' . http_build_query(array('token' => $this->token, 'zoneId' => $this->zoneId)); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { // take old cache $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } } $__aab = new __AntiAdBlock(); return $__aab->get();

Thursday, 26 December 2019

Wikimedia Foundation expresses deep concerns about India’s proposed intermediary liability rules

Wikimedia Foundation, the nonprofit group that operates Wikipedia and a number of other projects, has urged the Indian government to rethink the proposed changes to the nation’s intermediary liability rules that would affect swathes of companies and the way more than half a billion people access information online.

The organization has also urged the Indian government to make public the latest proposed changes to the intermediary rules so that all stakeholders have a chance to participate in a “robust and informed debate about how the internet should be governed in India.”

India proposed changes to intermediary rules (PDF) in late December last year and it is expected to approve it in the coming months. Under the proposal, the Indian Ministry of Electronics and IT requires “intermediary” apps — which as per its definition, includes any service with more than 5 million users — to set up a local office and have a senior executive in the nation who can be held responsible for any legal issues.

Amanda Keton, general counsel of Wikimedia Foundation, said on Thursday that India’s proposed changes to the intermediary rules may have serious impact on Wikipedia’s business — as it operates an open editing model that relies on users to contribute new articles and make changes to existing articles on Wikipedia — as well as those of other organizations.

The rules may also create a “significant financial burden” for nonprofit technology organizations and impede free expression rights for internet users in India, she said. Wikimedia Foundation conveyed its concerns to Ravi Shankar Prasad, the Minister of Electronics and IT in India. The company also published the letter on its blog for the world to see.

India’s latest changes to intermediary rules, which have been drafted to make the internet a safer experience for local residents, also require intermediaries to deploy automated tools “for proactively identifying and removing or disabling public access to unlawful information or content.”

The proposed changes have raised concerns for many. In a joint letter (PDF) earlier this year, Mozilla, Microsoft’s GitHub and Wikimedia had cautioned the Indian government that requiring intermediaries to proactively purge their platforms of unlawful content “would upend the careful balance set out in the existing law which places liability on the bad actors who engage in illegal activities, and only holds companies accountable when they know of such acts.”

The groups also cautioned that drafted measures “would significantly expand surveillance requirements on internet services.” Several trade bodies in India, that represent a number of major firms including Google and Facebook, have also suggested major changes to the proposal.

In the open letter published today, Wikimedia’s Keton reiterated several of those concerns, adding that “neither participants in the consultation nor the public have seen a new draft of these rules since [last year].” She also requested the government to redefine, how it has in another recently proposed set of rules, the way it classifies an entity as an intermediary as the current version seems to have far-reaching scope.

More than 770 million users from India visited Wikipedia last month, and Wikimedia has run programs to invite people to expand the online encyclopedia in Indic languages.

Keton also urged the government to rethink the requirement to bring “traceability” on online communication, as doing so is a “serious threat to freedom of expression as it could interfere with the ability of Wikipedia contributors to freely participate in the project.” (On the point of traceability, WhatsApp has said complying to such requirement would compromise encryption for every user.)



from TechCrunch https://ift.tt/362M7rQ
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support