cgi
play

CGI Apache mod_cgi.c oyama@cpan.org Shibuya Perl Mongers - PowerPoint PPT Presentation

CGI Apache mod_cgi.c oyama@cpan.org Shibuya Perl Mongers Shibuya.pm TechTalks#3 2003-06-13 p.1/17 Apache CGI Shibuya.pm TechTalks#3 2003-06-13 p.2/17 Apache http_core.c module mod_env.c


  1. CGI Apache mod_cgi.c oyama@cpan.org Shibuya Perl Mongers Shibuya.pm TechTalks#3 2003-06-13 – p.1/17

  2. • Apache • CGI • • • Shibuya.pm TechTalks#3 2003-06-13 – p.2/17

  3. Apache http_core.c • module • mod_env.c mod_log_config.c mod_mime.c mod_negotiation.c mod_include.c mod_autoindex.c Apache HTTP Server Apache module API mod_dir.c Apache CORE mod_cgi.c mod_asis.c mod_imap.c mod_actions.c mod_userdir.c mod_alias.c mod_access.c mod_auth.c module mod_setenvif.c Apache mod_perl.c mod_php.c Shibuya.pm TechTalks#3 2003-06-13 – p.3/17

  4. CGI • URI pipe • Body pipe • pipe • • mod_cgi.c 600 Shibuya.pm TechTalks#3 2003-06-13 – p.4/17

  5. - 1 • cgi-script (AddHandler cgi-script .cgi) • • subprocess_env ( ) • pipe fork Shibuya.pm TechTalks#3 2003-06-13 – p.5/17

  6. - 2 • subprocess_env CGI ( ) ( ) • chdir • • STDERR error log (dup2) (execle, execve) • • Socket Body pipe Shibuya.pm TechTalks#3 2003-06-13 – p.6/17

  7. - 1 • CONTENT TYPE, CONTENT LENGTH • HTTP * • Apache SERVER SIGNATURE, SERVER SOFTWARE, SERVER NAME, SERVER ROOT, REMOTE HOST, REMOTE ADDR, DOCUMENT ROOT, SERVER ADMIN, SCRIPT FILENAME, REMOTE PORT, REMOTE USER, AUTH TYPE, REMOTE IDENT, REDIRECT QUERY STRING, REDIRECT URL Shibuya.pm TechTalks#3 2003-06-13 – p.7/17

  8. - 2 • CGI GATEWAY INTERFACE = "CGI/1.1", SERVER PROTOCOL, REQUEST METHOD, QUERY STRING, REMOTE URI, SCRIPT NAME, PATH INFO, PATH TRANSLATED Shibuya.pm TechTalks#3 2003-06-13 – p.8/17

  9. POST • Socket 8192 read pipe HUGE_STRING_LEN • read flush STDIN • Socket read pipe 300 DEFAULT_TIMEOUT Timeout Shibuya.pm TechTalks#3 2003-06-13 – p.9/17

  10. - 1 • • Location REDIRECT • HTTP STDOUT • STDOUT • STDERR • STDERR • Shibuya.pm TechTalks#3 2003-06-13 – p.10/17

  11. Response Header • Set-Cookie, Content-type, Status, Location, Content-Length, Transfer-Encoding, Last-Modified, Set-Cookie Shibuya.pm TechTalks#3 2003-06-13 – p.11/17

  12. & • 8192 IOBUFSIZE Socket flush • Socket • 300 Timeout DEFAULT_TIMEOUT Timeout Shibuya.pm TechTalks#3 2003-06-13 – p.12/17

  13. Apache • LimitRequestLine ( 8190) • LimitRequestFieldsize ( 8190) • LimitRequestFields ( 100) • LimitRequestBody ( ) • RLimitCPU CPU • RLimitMEM Shibuya.pm TechTalks#3 2003-06-13 – p.13/17

  14. - 1 • POST STDIN ? ? • ? • STOP • Shibuya.pm TechTalks#3 2003-06-13 – p.14/17

  15. - 1 • POST STDIN ? Apache ? • 300 ? • STOP • $SIG { PIPE } pipe Shibuya.pm TechTalks#3 2003-06-13 – p.14/17

  16. - 2 • "Location: /path/to/file" CGI • Shibuya.pm TechTalks#3 2003-06-13 – p.15/17

  17. - 2 • "Location: /path/to/file" Apache CGI • RLimitMEM Shibuya.pm TechTalks#3 2003-06-13 – p.15/17

  18. - 3 • CGI SetEnv LD_PRELOAD /path/to/libdisable.so $ cat disable_socket.c #include <stdio.h> int socket(int domain, int type, int protocol) { fprintf(stderr, "Ha Ha Ha! cannot use socke!\n"); return -1; } $ gcc -shared -o libdisable.so disable_socket.c Shibuya.pm TechTalks#3 2003-06-13 – p.16/17

  19. 2003 8 Apache ( Perl C ...) Shibuya.pm TechTalks#3 2003-06-13 – p.17/17

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend