Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-7947

Use CURL extension functions instead of snoopy and fopen() if available

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 1.6, 1.7, 1.8
    • Fix Version/s: 1.9
    • Component/s: Libraries
    • Labels:
      None
    • Affected Branches:
      MOODLE_16_STABLE, MOODLE_17_STABLE, MOODLE_18_STABLE
    • Fixed Branches:
      MOODLE_19_STABLE

      Description

      Currently we are using several ways to connect to other servers from PHP code. The easiest way is to use standard cURL php extension. It should be available on majority of servers and it also supports SSL: http://php.net/manual/en/ref.curl.php CURL is considered to be more secure than fopen, snoopy library is buggy and not maintained, there is also the lowlevel socket workaround.

      We might use something like getURL() from lib/typo3/class.t3lib_div.php - it has a fallback to fopen(). We could implement proxy user&password (MDL-7921). Sample fsockopen() proxy with user&password code at http://www.php.net/manual/en/function.fsockopen.php#58196

      fopen used in:
      1/ healthcenter - slashargument test
      2/ language import
      3/ timezone import
      4/ installer

      snoopy used in:
      1/ magpie - see MDL-7946 (simplepie uses CURL)

      curl already required for:
      1/ cas

      fsocksopen used in (some of them could use the proxy user&password too):
      1/ language import - with proxy
      2/ auth/fc
      3/ enrol/authorize
      4/ paypal ipn
      5/ ipatlas
      6/ phpmailer

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

              skodak Petr Skoda created issue -
              skodak Petr Skoda made changes -
              Field Original Value New Value
              Description Currently we are using several ways to connect to other servers from PHP code. The recommended way is to use standard cURL php library. It should be available on majority of servers and it also supports SSL: http://php.net/manual/en/ref.curl.php CURL is considered to be more secure than fopen, snoopy library is buggy and not maintained :-(

              We might also use something like getURL() from lib/typo3/class.t3lib_div.php - it does have a fallback to fopen(). We could implement proxy user&password (MDL-7921)

              fopen used in:
              1/ healthcenter - slashargument test
              2/ language import
              3/ timezone import
              4/ installer

              snoopy used in:
              1/ magpie - see MDL-7946 (simplepie uses CURL)

              curl already required for:
              1/ cas


              Currently we are using several ways to connect to other servers from PHP code. The recommended way is to use standard cURL php library. It should be available on majority of servers and it also supports SSL: http://php.net/manual/en/ref.curl.php CURL is considered to be more secure than fopen, snoopy library is buggy and not maintained :-(

              We might also use something like getURL() from lib/typo3/class.t3lib_div.php - it does have a fallback to fopen(). We could implement proxy user&password (MDL-7921). sample fopen() proxy with user&password code at http://www.php.net/manual/en/function.fsockopen.php#58196

              fopen used in:
              1/ healthcenter - slashargument test
              2/ language import
              3/ timezone import
              4/ installer

              snoopy used in:
              1/ magpie - see MDL-7946 (simplepie uses CURL)

              curl already required for:
              1/ cas


              skodak Petr Skoda made changes -
              Description Currently we are using several ways to connect to other servers from PHP code. The recommended way is to use standard cURL php library. It should be available on majority of servers and it also supports SSL: http://php.net/manual/en/ref.curl.php CURL is considered to be more secure than fopen, snoopy library is buggy and not maintained :-(

              We might also use something like getURL() from lib/typo3/class.t3lib_div.php - it does have a fallback to fopen(). We could implement proxy user&password (MDL-7921). sample fopen() proxy with user&password code at http://www.php.net/manual/en/function.fsockopen.php#58196

              fopen used in:
              1/ healthcenter - slashargument test
              2/ language import
              3/ timezone import
              4/ installer

              snoopy used in:
              1/ magpie - see MDL-7946 (simplepie uses CURL)

              curl already required for:
              1/ cas


              Currently we are using several ways to connect to other servers from PHP code. The recommended way is to use standard cURL php library. It should be available on majority of servers and it also supports SSL: http://php.net/manual/en/ref.curl.php CURL is considered to be more secure than fopen, snoopy library is buggy and not maintained :-(

              We might also use something like getURL() from lib/typo3/class.t3lib_div.php - it does have a fallback to fopen(). We could implement proxy user&password (MDL-7921). sample fopen() proxy with user&password code at http://www.php.net/manual/en/function.fsockopen.php#58196

              fopen used in:
              1/ healthcenter - slashargument test
              2/ language import
              3/ timezone import
              4/ installer

              snoopy used in:
              1/ magpie - see MDL-7946 (simplepie uses CURL)

              curl already required for:
              1/ cas

              fsocksopen used in (some of them could use the proxy user&password too):
              1/ language import - with proxy
              2/ auth/fc
              3/ enrol/authorize
              4/ paypal ipn
              5/ ipatlas
              6/ phpmailer
              skodak Petr Skoda made changes -
              Summary Use CURL standard functions instead of snoopy and fopen() Use CURL extension functions instead of snoopy and fopen() if available
              skodak Petr Skoda made changes -
              Description Currently we are using several ways to connect to other servers from PHP code. The recommended way is to use standard cURL php library. It should be available on majority of servers and it also supports SSL: http://php.net/manual/en/ref.curl.php CURL is considered to be more secure than fopen, snoopy library is buggy and not maintained :-(

              We might also use something like getURL() from lib/typo3/class.t3lib_div.php - it does have a fallback to fopen(). We could implement proxy user&password (MDL-7921). sample fopen() proxy with user&password code at http://www.php.net/manual/en/function.fsockopen.php#58196

              fopen used in:
              1/ healthcenter - slashargument test
              2/ language import
              3/ timezone import
              4/ installer

              snoopy used in:
              1/ magpie - see MDL-7946 (simplepie uses CURL)

              curl already required for:
              1/ cas

              fsocksopen used in (some of them could use the proxy user&password too):
              1/ language import - with proxy
              2/ auth/fc
              3/ enrol/authorize
              4/ paypal ipn
              5/ ipatlas
              6/ phpmailer
              Currently we are using several ways to connect to other servers from PHP code. The easiest way is to use standard cURL php extension. It should be available on majority of servers and it also supports SSL: http://php.net/manual/en/ref.curl.php CURL is considered to be more secure than fopen, snoopy library is buggy and not maintained, there is also the lowlevel socket workaround.

              We might use something like getURL() from lib/typo3/class.t3lib_div.php - it has a fallback to fopen(). We could implement proxy user&password (MDL-7921). Sample fsockopen() proxy with user&password code at http://www.php.net/manual/en/function.fsockopen.php#58196

              fopen used in:
              1/ healthcenter - slashargument test
              2/ language import
              3/ timezone import
              4/ installer

              snoopy used in:
              1/ magpie - see MDL-7946 (simplepie uses CURL)

              curl already required for:
              1/ cas

              fsocksopen used in (some of them could use the proxy user&password too):
              1/ language import - with proxy
              2/ auth/fc
              3/ enrol/authorize
              4/ paypal ipn
              5/ ipatlas
              6/ phpmailer
              skodak Petr Skoda made changes -
              Link This issue has been marked as being related by MDL-12699 [ MDL-12699 ]
              skodak Petr Skoda made changes -
              Link This issue will be resolved by MDL-12796 [ MDL-12796 ]
              skodak Petr Skoda made changes -
              Link This issue will be resolved by MDL-12782 [ MDL-12782 ]
              skodak Petr Skoda made changes -
              Status Open [ 1 ] Resolved [ 5 ]
              Fix Version/s 1.9 [ 10190 ]
              Resolution Fixed [ 1 ]
              dougiamas Martin Dougiamas made changes -
              Status Resolved [ 5 ] Closed [ 6 ]
              QA Assignee nobody
              dougiamas Martin Dougiamas made changes -
              Workflow jira [ 18841 ] MDL Workflow [ 54521 ]
              dougiamas Martin Dougiamas made changes -
              Workflow MDL Workflow [ 54521 ] MDL Full Workflow [ 83636 ]

                People

                • Assignee:
                  skodak Petr Skoda
                  Reporter:
                  skodak Petr Skoda
                  Tester:
                  Nobody
                  Participants:
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved:
                    Fix Release Date:
                    3/Mar/08